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