sqlserver日期函数

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
原文地址:https://www.cnblogs.com/sxxjyj/p/7462842.html