SQL Server系统函数:日期函数

时间:2022-11-08 22:31:17

原文:SQL Server系统函数:日期函数


1、返回当前日期和时间


  1. select GETDATE() '当前日期-精确到33毫秒'
  2. select GETUTCDATE() 'UTC日期和时间-精确到33毫秒'
  3. select SYSDATETIME() '当前日期和时间-精确到100纳秒(高精度)'
  4. select SYSUTCDATETIME() 'UTC-精确到100纳秒(高精度)'
  5. 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、显示日期一部分的字符串


  1. select SYSDATETIME(),
  2. DATENAME(year,SYSDATETIME()),
  3. DATENAME(quarter,SYSDATETIME()),
  4. DATENAME(month,SYSDATETIME()),
  5. DATENAME(dayofyear,SYSDATETIME()),
  6. DATENAME(day,SYSDATETIME()),
  7. DATENAME(week,SYSDATETIME()),
  8. DATENAME(weekday,SYSDATETIME()),
  9. DATENAME(hour,SYSDATETIME()),
  10. DATENAME(minute,SYSDATETIME()),
  11. DATENAME(second,SYSDATETIME()),
  12. DATENAME(millisecond,SYSDATETIME()),
  13. DATENAME(microsecond,SYSDATETIME()),
  14. DATENAME(nanosecond,SYSDATETIME()),
  15. DATENAME(TZoffset,SYSDATETIME()),
  16. DATENAME(ISO_WEEK,SYSDATETIME())

4、显示日期一部分的整数


  1. select YEAR(GETDATE()),
  2. MONTH(getdate()),
  3. DAY(getdate())
  4. select SYSDATETIME(),
  5. DATEPART(year,SYSDATETIME()),
  6. DATEPART(quarter,SYSDATETIME()),
  7. DATEPART(month,SYSDATETIME()),
  8. DATEPART(dayofyear,SYSDATETIME()),
  9. DATEPART(day,SYSDATETIME()),
  10. DATEPART(week,SYSDATETIME()),
  11. DATEPART(weekday,SYSDATETIME()),
  12. DATEPART(hour,SYSDATETIME()),
  13. DATEPART(minute,SYSDATETIME()),
  14. DATEPART(second,SYSDATETIME()),
  15. DATEPART(millisecond,SYSDATETIME()),
  16. DATEPART(microsecond,SYSDATETIME()),
  17. DATEPART(nanosecond,SYSDATETIME()),
  18. DATEPART(TZoffset,SYSDATETIME()),
  19. DATEPART(ISO_WEEK,SYSDATETIME())

5、增加、减少日期值


  1. SELECT DATEADD(quarter, 1, getdate()),
  2. DATEADD(quarter,-1, getdate())

6、计算两个日期的差值


  1. select DATEDIFF(DAY,'2011-08-09',GETDATE()),
  2. DATEDIFF(MONTH,'2011-08-09',GETDATE())
SQL Server系统函数:日期函数
SQL Server系统函数:日期函数
发布了416 篇原创文章 · 获赞 135 · 访问量 94万+