原文:SQL Server系统函数:日期函数
1、返回当前日期和时间
select GETDATE() '当前日期-精确到33毫秒' select GETUTCDATE() 'UTC日期和时间-精确到33毫秒' select SYSDATETIME() '当前日期和时间-精确到100纳秒(高精度)' select SYSUTCDATETIME() 'UTC-精确到100纳秒(高精度)' select SYSDATETIMEOFFSET()'当前日期与UTC之间的差值(时分)'
2、转换偏移,从一个转为另一个,从UTC-05:00转为UTC+03:00:
'2007-08-12 10:20:35.9788989'是UTC减去'05:00'之后算出来的,
所以UTC是'2007-08-12 10:20:35.9788989'加'05:00',
也就是'2007-08-12 15:20:35.9788989',
然后'2007-08-12 15:20:35.9788989'加上'03:00',
也就是'2007-08-12 18:20:35.9788989'
select SWITCHOFFSET('2007-08-12 10:20:35.9788989 -05:00','+03:00')
将普通的日期时间型转为日期时间偏移,只是在日期时间后增加了offset值,返回:2007-08-12 10:20:35.0000000 -05:00
select TODATETIMEOFFSET('2007-08-12 10:20:35','-05:00')
3、显示日期一部分的字符串
select SYSDATETIME(), DATENAME(year,SYSDATETIME()), DATENAME(quarter,SYSDATETIME()), DATENAME(month,SYSDATETIME()), DATENAME(dayofyear,SYSDATETIME()), DATENAME(day,SYSDATETIME()), DATENAME(week,SYSDATETIME()), DATENAME(weekday,SYSDATETIME()), DATENAME(hour,SYSDATETIME()), DATENAME(minute,SYSDATETIME()), DATENAME(second,SYSDATETIME()), DATENAME(millisecond,SYSDATETIME()), DATENAME(microsecond,SYSDATETIME()), DATENAME(nanosecond,SYSDATETIME()), DATENAME(TZoffset,SYSDATETIME()), DATENAME(ISO_WEEK,SYSDATETIME())
4、显示日期一部分的整数
select YEAR(GETDATE()), MONTH(getdate()), DAY(getdate()) select SYSDATETIME(), DATEPART(year,SYSDATETIME()), DATEPART(quarter,SYSDATETIME()), DATEPART(month,SYSDATETIME()), DATEPART(dayofyear,SYSDATETIME()), DATEPART(day,SYSDATETIME()), DATEPART(week,SYSDATETIME()), DATEPART(weekday,SYSDATETIME()), DATEPART(hour,SYSDATETIME()), DATEPART(minute,SYSDATETIME()), DATEPART(second,SYSDATETIME()), DATEPART(millisecond,SYSDATETIME()), DATEPART(microsecond,SYSDATETIME()), DATEPART(nanosecond,SYSDATETIME()), DATEPART(TZoffset,SYSDATETIME()), DATEPART(ISO_WEEK,SYSDATETIME())
5、增加、减少日期值
SELECT DATEADD(quarter, 1, getdate()), DATEADD(quarter,-1, getdate())
6、计算两个日期的差值
select DATEDIFF(DAY,'2011-08-09',GETDATE()), DATEDIFF(MONTH,'2011-08-09',GETDATE())
来源:https://www.cnblogs.com/lonelyxmas/p/12019915.html