基本格式
系统时间
select GETDATE();
格式转换
字符串转日期
select convert(datetime,'2021-02-27 15:52:15') --2021-02-27 15:52:15.000
select convert(datetime,'2021-02-27 15:52:15',20) --2021-02-27 15:52:15.000
select convert(datetime,'2021/02/27 15:52:15',111) --2021-02-27 15:52:15.000
select convert(datetime,'2020',20) --2020-01-01 00:00:00.000
日期转字符串
select CONVERT(VARCHAR(20),GETDATE(),120) --12 26 2021 6:47PM
select CONVERT(VARCHAR(20),GETDATE()) --2021-12-26 18:47:46
select CONVERT(VARCHAR(32),GETDATE(),111) --2021/12/26
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。
其他计算命令
计算本年天数
select datediff(d,t.curr_year,dateadd(yy,1,t.curr_year)) from
(select dateadd(d,-datepart(dy,getdate())+1,getdate()) curr_year) t
select datediff(d,t.curr_year,dateadd(yy,1,t.curr_year)) from
(select dateadd(d,-datepart(dy,convert(datetime,'2020',20))+1,convert(datetime,'2020',20)) curr_year) t
也可以用下面判断闰年的方法返回天数
DATEDIFF() 函数返回两个日期之间的时间
DATEADD() 函数在日期中添加或减去指定的时间间隔
DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等
判断闰年
select
case when(YEAR(GETDATE())%4=0 and YEAR(GETDATE())%100<>0 or YEAR(GETDATE())%400=0) then '闰年'
else '平年'
end
某月的第一天,最后一天
select dateadd(m, datediff(m,0,getdate()),0)
select dateadd(day ,-1, dateadd(m, datediff(m,0,getdate())+1,0))
附: Oracle日期转换
感谢分享 赞一个