SQL Server时间相关处理函数总结

计算时间差:

CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) / ( 60 * 60 * 24 ) AS INT ) AS VARCHAR ) + ‘天’ + CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) % 86400 / 3600 AS INT ) AS VARCHAR ) + ‘小时’ + CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) % 3600 / 60 AS INT ) AS VARCHAR ) + ‘分’ + CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) % 60 AS INT ) AS VARCHAR ) + ‘秒’ LengthOfTime

日期函数

函数含义举例
GETDATE获取当前系统时间select getdate()
结果:2019-07-26 09:59:19.720
DATEADD将指定数值添加到指定日期部分后的日期select dateadd(dd,4,getdate());
结果:2019-07-30 10:03:35.427(4天后)
DATEDIFF两个指定日期指定部分的时间差,返回结果为int型select datediff(mm,‘05/10/1996’,getdate())
结果:278 (1996年5月10日 至今的月数)
DATENAME日期中指定部分的字符串形式//1996年5月10日的星期数
select datename(dw,‘05/10/1996’)
结果:星期五
DATEPART日期指定部分的整数形式select datepart(day,‘05/10/1996’)
结果:10
MONTH返回指定日期的月select month(‘02/10/2019’)
结果:2
YEAR返回指定日期的年select year(‘02/10/2019’)
结果:2019
GETDATE
select getdate()
结果:2019-07-26 09:59:19.720
DATEADD
//四天后
select dateadd(dd,4,getdate());
结果:2019-07-30 10:03:35.427
//四个月后
select dateadd(mm,4,getdate());
结果:2019-11-26 10:05:04.997
//四个月之前
select dateadd(mm,-4,getdate());
结果:2019-03-26 10:05:50.920
//四年之前
select dateadd(YYYY,-4,getdate());
结果:2015-07-26 10:07:42.210
DATEDIFF
//1996年5月10日  至今的月数
select datediff(mm,'05/10/1996',getdate())
结果:278
//1996年5月10日  至今的年数
select datediff(yyyy,'05/10/1996',getdate())
结果:23
//1996年5月10日  至今的秒数
select datediff(ss,'05/10/1996',getdate())
结果:732449613
DATENAME
//1996年5月10日的星期数
select datename(dw,'05/10/1996')
结果:星期五
DATEPART
select datepart(day,'05/10/1996')
结果:10
MONTH
select MONTH('02/10/2019')
结果:2
YEAR
select year('02/10/2019')
结果:2019
select SUBSTRING(convert(varchar(10),getdate(),112),0,7)+'01'--每个月第一天

select convert(varchar(10),DATEADD(day,-1,SUBSTRING(convert(varchar(10),DATEADD(month,1,getdate()),112),0,7)+'01'),112)--每个月最后一天
日期转换:
    1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
    2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
    3. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
    4. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
    5. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
    6. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
    7. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
    8. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
    9. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
    10. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
    11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
    12. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
    13. Select CONVERT(varchar(100), GETDATE(), 12): 060516
    14. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
    15. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
    16. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
    17. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
    18. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
    19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
    20. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
    21. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
    22. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
    23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
    24. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
    25. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
    26. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
    27. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
    28. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
    29. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
    30. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
    31. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
    32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
    33. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
    34. Select CONVERT(varchar(100), GETDATE(), 112): 20060516
    35. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
    36. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
    37. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
    38. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
    39. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
    40. Select CONVERT(varchar(100), GETDATE(), 130): 18 ??? ??? 1427 10:57:49:907AM
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值