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 |
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)