随笔- 6  评论- 17  文章- 17 

Sql Server时间函数

函数

定义

确定性

备注

DateAdd(datepart ,

number, date )

返回给指定日期加上一个时间间隔后的新 datetime 值。

确定

 

DateDiff(datepart,

StartDate,EndDate)

返回跨两个指定日期的日期边界数和时间边界数。

确定

enddate 减去 startdate。如果 startdate 晚于 enddate,则返回负值。

DateName(datepart,date)

返回表示指定日期的指定日期部分的字符串。

非确定性函数

 

DATEPART(datepart,date )

返回表示指定日期的指定日期部分的整数。

除了用作 DATEPART (dw, date) 外都具有确定性。dw 是 weekday 的日期部分,取决于设置每周的第一天的 SET DATEFIRST 所设置的值。

 

GetDate()

以 datetime 值的 SQL Server 2005 标准内部格式返回当前系统日期和时间。

非确定性函数。

 

GetUTCDate()

返回表示当前的 UTC 时间(通用协调时间或格林尼治标准时间)的 datetime 值。当前的 UTC 时间得自当前的本地时间和运行 Microsoft SQL Server 实例的计算机操作系统中的时区设置。

非确定性函数

 

Year(date)

返回表示指定日期的年份的整数

确定

此函数等价于 DATEPART(yy, date)

Month(date)

返回表示指定日期的“月”部分的整数

确定

MONTH 等价于 DATEPART(mm, date)

Day(date)

返回一个整数,表示指定日期的天 datepart 部分

确定

 

此函数等价于 DATEPART(dd, date)

非确定函数,引用该列的视图和表达式无法进行索引

  

datepart部分

含义

日期部分

缩写

year

yy,yyyy

季度

quarter

qq,q

month

mm,m

day

dd,d

hour

hh

minute

mi,n

second

ss,s

微秒

millisecond

ms

 

 

 

一年中第几天

dayofyear

dy,y

一年第几周

week

wk,ww

一周第几天,以周日开始

weekday

dw

1.一个月第一天的
Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
2.本周的星期一
Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
3.一年的第一天
Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
4.季度的第一天
Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
5.当天的半夜
Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
6.上个月的最后一天
Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
7.去年的最后一天
Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
8.本月的最后一天
Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
9.本年的最后一天
Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
10.本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 
1.一个月第一天的         Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
2.本周的星期一            Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
3.一年的第一天            Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
4.季度的第一天            Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
5.当天的半夜               Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
6.上个月的最后一天       Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
7.去年的最后一天          Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
8.本月的最后一天          Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
9.本年的最后一天          Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
10.本月的第一个星期一  select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 

 

posted on 2010-03-24 10:30 天空一角 阅读(...) 评论(...) 编辑 收藏