sqlserver一些常用的日期函数
1、day(date_expression)
返回date_expression中的日期值
2、month(date_expression)
返回date_expression中的月份值
3、year(date_expression)
返回date_expression中的年份值
4、DATEADD()
DATEADD (, , )
返回指定日期date 加上指定的额外日期间隔number 产生的新日期。参数“datepart” 取值如下:
5、DATEDIFF()
DATEDIFF (, , ) 返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。
6、DATENAME()
DATENAME (, ) 以字符串的形式返回日期的指定部分此部分。由datepart 来指定。
7、DATEPART()
DATEPART ( datepart , date )
以整数值的形式返回日期的指定部分。此部分由datepart 来指定。
DATEPART (dd, date) 等同于DAY (date)
DATEPART (mm, date) 等同于MONTH (date)
DATEPART (yy, date) 等同于YEAR (date)
8、GETDATE() 以DATETIME 的缺省格式返回系统当前的日期和时间
试验如下:
1 SELECT GETDATE() AS CurrentDateTime --取当前时间 2017-09-01 11:23:16.230
2
3 --取年月日的值 一位数
4 select year(GETDATE()) as testTime --取当前时间的年值 2017
5 select month(GETDATE()) as testTime --取当前时间的月值 9
6 select day(GETDATE()) as testTime --取当前时间的日值 1
7
8 --取年月日的值 两位数
9 select datename(yy,GETDATE()) --取当前时间的年值 2017
10 select datename(mm,GETDATE()) --取当前时间的月值 09
11 select datename(dd,GETDATE()) --取当前时间的天值 1
12
13 --取当前时间的任意控制时间 前一年 后一月 前一日
14 select dateadd(yy,-1,GETDATE()) ----取时间字段(年份被减1了) 2016-09-01 11:25:41.527
15 select dateadd(mm,6,GETDATE()) ----取时间字段(月份被加1了) 2017-10-01 11:25:41.527
16 select dateadd(dd,-1,GETDATE()) ----取时间字段(日被减1了) 2017-08-31 11:25:41.527
17
18 --取两个日期的时间差 第三个参数减第二个参数
19 declare @beginTime datetime;
20 set @beginTime = '2018-09-05';
21 select @beginTime --输出 2018-09-05 00:00:00.000
22
23 select DATEDIFF(yy,@beginTime,getdate()) --与当前日期的年份差 -1
24 select DATEDIFF(mm,@beginTime,getdate()) --与当前日期的月份差 -12
25 select DATEDIFF(dd,@beginTime,getdate()) --与当前日期的日数差 -369
26 select DATEDIFF(mi,@beginTime,getdate()) --与当前日期的分钟数差 -530636
27
28 select datepart(yy,@beginTime) --年 2018
29 select datepart(mm,@beginTime) --月 9
30 select datepart(dd,@beginTime) --日 5
31 select datepart(hh,@beginTime) --时 0
32 select datepart(mi,@beginTime) --分 0
33 select datepart(ss,@beginTime) --分 0
34 select datepart(ms,@beginTime) --秒 0
35 select datepart(qq,@beginTime) --季度 3
36 select datepart(dy,@beginTime) --那年的第几天 248
37 select datepart(wk,@beginTime) --那年的第几个星期 36
38 select datepart(dw,@beginTime) --那年的那个星期的第几个工作日(工作日从星期日开算) 4