sqlserver日期函数

*--*  定义变量 

declare @datetim date
set @datetim = getdate()

*--* eomonth函数求日期月份最后一天日期(sql 2012)

SELECT EOMONTH (GETDATE()) --EOMONTH (@data, @num) num传入数值对应当前月份+num的月份

  

*--* 获取当前年、月、日

select year(getdate())
select month(getdate())
select day(getdate())

*--* DATEDIFF() 函数

select DATEDIFF(yy,'1900-01-01',getdate())--当前时间与1900-01-01差值(yy 单位年)

*--* DATEADD() 函数在日期中添加或减去指定的时间间隔

select DATEADD(mm,1,getdate())--mm表示月,结果为下一月份的当前时间

select dateadd(dd,-day(getdate())+1,getdate())--当前月份第一天
select DATEADD(mm, DATEDIFF(m,0,getdate()), 0)--当前月份第一天时分秒为00:00:00.000
select dateadd(dd,-day(getdate()),getdate()) --上月份最后一天 
select CONVERT(DATETIME, EOMONTH (GETDATE()), 120) --本月份最后一天(sql2012以上适用) 00:00:00.000
select dateadd(mm, 1, dateadd(dd,-day(getdate())+1,getdate()))-1 --本月份最后一天 
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))--本月最后一天 时分秒为23:59:59.997
select dateadd(year, datediff(year, 0, getdate()), 0)-- 当年第一天
select dateadd(year, datediff(year, 0, dateadd(year, 1, getdate())), -1)-- 当年最后一天
SELECT dateadd(ms,-2,DATEADD(year, DATEDIFF(year,1,getdate())+1, 0))--当年最后一天 时分秒为23:59:59.997

 *--*  convert 日期字符串相互转换。

select CONVERT(DATETIME, '2019-01-02', 120) --结果 2019-01-02 00:00:00.000
select CONVERT(VARCHAR(10), GETDATE(), 120)-- 结果 2019-07-23

select CONVERT(DATETIME, '20190102', 112) --结果 2019-01-02 00:00:00.000
select CONVERT(VARCHAR(9), GETDATE(), 112) --结果 20190723

原文地址:https://www.cnblogs.com/hnzkljq/p/11199334.html