Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
定义:datediff(day/month/year,startdate,enddate)
日期函数:(要返回的天数/月数/年数,开始日期,结束日期)
具体形式:select 1,2,datediff(day,1,2) 天数 from aa
--本周第一天
SELECT
DATEADD(
Day
,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate())
--or
select
dateadd(wk, datediff(wk,0,getdate()), 0)
--本周第一天
select
dateadd(wk, datediff(wk,0,getdate()), 6)
--上月第一天
SELECT
CONVERT
(
CHAR
(10),DATEADD(
month
,-1,DATEADD(dd,-
DAY
(GETDATE())+1,GETDATE())),111)
--上月最后一天
SELECT
CONVERT
(
CHAR
(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+
' 23:59:59'
--本月第一天
select
dateadd(dd,-datepart(dd,getdate())+1,getdate())
--本月最后一天
select
dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate()))
--本月天数
select
datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()), dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())))
--or
select
datepart(dd,dateadd(dd,-1,dateadd(mm,1,
cast
(
cast
(
year
(getdate())
as
varchar
)+
'-'
+
cast
(
month
(getdate())
as
varchar
)+
'-01'
as
datetime))))
--下月第一天
select
dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))
--下月最后一天
SELECT
CONVERT
(
CHAR
(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+
' 23:59:59'
--季度第一天
SELECT
DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--季度最后一天(直接推算法)
SELECT
DATEADD(
Day
,-1,
CONVERT
(
char
(8),DATEADD(
Month
,1+DATEPART(Quarter,getdate())*3-
Month
(getdate()),getdate()),120)+
'1'
)
--季度的最后一天(CASE判断法)
select
DATEADD(
Month
,DATEPART(Quarter,getdate())*3-
Month
(getdate()),getdate())
--本月第一个星期一
SELECT
DATEADD(wk, DATEDIFF(wk,
''
, DATEADD(dd, 6 -
DAY
(getdate()), getdate())),
''
)
--去年最后一天
SELECT
dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
--今年第一天
SELECT
DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
--今年最后一天
SELECT
dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1,0))
--指定日期所在周的任意一天
SELECT
DATEADD(
Day
,@number-DATEPART(Weekday,@dt),@dt)
--5.指定日期所在周的任意星期几
--A. 星期天做为一周的第1天
SELECT
DATEADD(
Day
,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B. 星期一做为一周的第1天
SELECT
DATEADD(
Day
,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
---周内的第几日
select
datepart(weekday,getdate())
as
周内的第几日
--年内的第几周
select
datepart(week,getdate())
as
年内的第几周
--年内的第几季
select
datepart(quarter,getdate())
as
年内的第几季
--判断某天是当月的第几周的sql函数
CREATE
FUNCTION
WeekOfMonth(@
day
datetime)
RETURNS
int
AS
begin
----declare @day datetime
declare
@num
int
declare
@Start datetime
declare
@dd
int
declare
@dayofweek
char
(8)
declare
@dayofweek_num
char
(8)
declare
@startWeekDays
int
---set @day='2009-07-05'
if datepart(dd,@
day
)=1
return
1
else
set
@Start= (
SELECT
DATEADD(mm, DATEDIFF(mm,0,@
day
), 0))
--一个月第一天的
set
@dayofweek= (datename(weekday,@Start))
---得到本月第一天是周几
set
@dayofweek_num=(
select
(
case
@dayofweek
when
'星期一'
then
2
when
'星期二'
then
3
when
'星期三'
then
4
when
'星期四'
then
5
when
'星期五'
then
6
when
'星期六'
then
7
when
'星期日'
then
1
end
))
set
@dayofweek_num= 7-@dayofweek_num+1
---得到本月的第一周一共有几天
---print @dayofweek_num
set
@dd=datepart(dd,@
day
)
----得到今天是这个月的第几天
--print @dd
if @dd<=@dayofweek_num
--小于前一周的天数
return
1
else
set
@dd=@dd-@dayofweek_num
if @dd % 7=0
begin
set
@num=@dd / 7
return
@num+1
end
else
--if @dd % 7<>0
set
@num=@dd / 7
set
@num=@num+1+1
return
@num
end