Sql Server 格式化日期输出显示总结


函数 参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称


参数 interval的设定值缩写(Sql Server)说明如下:
Year Yy 年 1753 ~ 9999
Quarter Qq 季 1 ~ 4
Month Mm 月1 ~ 12
Day of year Dy 一年的日数,一年中的第几日 1-366
Day Dd 日,1-31
Weekday Dw 一周的日数,一周中的第几日 1-7
Week Wk 周,一年中的第几周 0 ~ 51
Hour Hh 时0 ~ 23
Minute Mi 分钟0 ~ 59
Second Ss 秒 0 ~ 59
Millisecond Ms 毫秒 0 ~ 999

实例:
1.显示本月第一天
select dateadd(mm,datediff(mm,0,getdate()),0)  --返回:2018-02-01 00:00:00.000
select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)  --返回:2018-02-01 00:00:00.000

2.显示本月最后一天
select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))  --返回:2018-02-28 00:00:00.000
select dateadd(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0))   --返回:2018-02-28 23:59:59.997

3.上个月的最后一天 
select dateadd(ms,-3,dateadd(mm,datediff(mm,0,getdate()),0))  --返回:2018-01-31 23:59:59.997

4.本月的第一个星期一
select dateadd(wk,datediff(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)  --返回:2018-02-05 00:00:00.000

5.本年的第一天 
select dateadd(yy,datediff(yy,0,getdate()),0)  --返回:2018-01-01 00:00:00.000

6.本年的最后一天 
select dateadd(ms,-3,dateadd(yy,datediff(yy,0,getdate())+1,0))  --返回:2018-12-31 23:59:59.997

7.去年的最后一天 
select dateadd(ms,-3,dateadd(yy,datediff(yy,0,getdate()),0))  --返回:2017-12-31 23:59:59.997

8.本季度的第一天 
select dateadd(qq,datediff(qq,0,getdate()),0)  --返回:2018-01-01 00:00:00.000 

9.本周的星期一 
select dateadd(wk,datediff(wk,0,getdate()),0)  --返回:2018-02-12 00:00:00.000 

10.获取当月总天数:
select datediff(dd,getdate(),dateadd(mm, 1, getdate()))  --返回:28

11.获取当前为星期几
select datename(weekday, getdate())  --返回:星期日

12. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天 
select dateadd(day,2,'2018-02-11') --返回:2018-02-13 00:00:00.000

13. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2018-02-01','2018-02-11') --返回:10

14. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2018-02-11') --返回 2
年为year,月为month,日为day,小时hour,分为minute,秒为second

15. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2018-02-11') --返回:星期日


使用日期格式化函数:

Select CONVERT(varchar(100), GETDATE(), 0): 02 11 2018  2:46PM
Select CONVERT(varchar(100), GETDATE(), 1): 02/11/18
Select CONVERT(varchar(100), GETDATE(), 2): 18.02.11
Select CONVERT(varchar(100), GETDATE(), 3): 11/02/18
Select CONVERT(varchar(100), GETDATE(), 4): 11.02.18
Select CONVERT(varchar(100), GETDATE(), 5): 11-02-18
Select CONVERT(varchar(100), GETDATE(), 6): 11 02 18
Select CONVERT(varchar(100), GETDATE(), 7): 02 11, 18
Select CONVERT(varchar(100), GETDATE(), 8): 14:46:32
Select CONVERT(varchar(100), GETDATE(), 9): 02 11 2018  2:46:32:067PM
Select CONVERT(varchar(100), GETDATE(), 10): 02-11-18
Select CONVERT(varchar(100), GETDATE(), 11): 18/02/11
Select CONVERT(varchar(100), GETDATE(), 12): 180211
Select CONVERT(varchar(100), GETDATE(), 13): 11 02 2018 14:46:32:067
Select CONVERT(varchar(100), GETDATE(), 14): 14:46:32:067
Select CONVERT(varchar(100), GETDATE(), 20): 2018-02-11 14:46:32
Select CONVERT(varchar(100), GETDATE(), 21): 2018-02-11 14:46:32.067
Select CONVERT(varchar(100), GETDATE(), 22): 02/11/18  2:46:32 PM
Select CONVERT(varchar(100), GETDATE(), 23): 2018-02-11
Select CONVERT(varchar(100), GETDATE(), 24): 14:46:32
Select CONVERT(varchar(100), GETDATE(), 25): 2018-02-11 14:46:32.067
Select CONVERT(varchar(100), GETDATE(), 100): 02 11 2018  2:46PM
Select CONVERT(varchar(100), GETDATE(), 101): 02/11/2018
Select CONVERT(varchar(100), GETDATE(), 102): 2018.02.11
Select CONVERT(varchar(100), GETDATE(), 103): 11/02/2018
Select CONVERT(varchar(100), GETDATE(), 104): 11.02.2018
Select CONVERT(varchar(100), GETDATE(), 105): 11-02-2018
Select CONVERT(varchar(100), GETDATE(), 106): 11 02 2018
Select CONVERT(varchar(100), GETDATE(), 107): 02 11, 2018
Select CONVERT(varchar(100), GETDATE(), 108): 14:46:32
Select CONVERT(varchar(100), GETDATE(), 109): 02 11 2018  2:46:32:067PM
Select CONVERT(varchar(100), GETDATE(), 110): 02-11-2018
Select CONVERT(varchar(100), GETDATE(), 111): 2018/02/11
Select CONVERT(varchar(100), GETDATE(), 112): 20180211
Select CONVERT(varchar(100), GETDATE(), 113): 11 02 2018 14:46:32:067
Select CONVERT(varchar(100), GETDATE(), 114): 14:46:32:067
Select CONVERT(varchar(100), GETDATE(), 120): 2018-02-11 14:46:32
Select CONVERT(varchar(100), GETDATE(), 121): 2018-02-11 14:46:32.067
Select CONVERT(varchar(100), GETDATE(), 126): 2018-02-11T14:46:32.067
Select CONVERT(varchar(100), GETDATE(), 130): 26 ????? ?????? 1439  2:46:32:067PM
Select CONVERT(varchar(100), GETDATE(), 131): 26/05/1439  2:46:32:067PM

你可能感兴趣的:(数据库)