当前位置:   article > 正文

SQLSERVER 最全的时间&日期处理转换语句_sqlserver 时间转换

sqlserver 时间转换

当前时间

语法说明

getdate,是一个函数术语,GETDATE() 函数从 SQL Server 返回当前的时间和日期。

  1. SELECT getdate()
  2. SELECT CONVERT(CHAR(10),getdate(),23)
  3. SELECT CONVERT(CHAR(10),getdate(),112)
  4. Select CONVERT(varchar(100), GETDATE(), 8)
  5. Select CONVERT(varchar(100), GETDATE(), 24)
  6. Select CONVERT(varchar(100), GETDATE(), 114)

常用代码收集

  1. --- 本月的第一天
  2. SELECT dateadd(mm,datediff(mm,0,getdate()-1),0)
  3. SELECT CONVERT(CHAR(10),DATEADD(mm,DATEDIFF(mm,0,getdate()-1),0),23)
  4. SELECT DATEADD(ms,-1,dateadd(mm,datediff(mm,0,getdate()),0))
  5. --本月的最后一天
  6. SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) +' 23:59:59'
  7. --上个月的第一天
  8. select dateadd(m,-1,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
  9. --上个月的最后一天
  10. SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
  11. ---- 上上月最后一天
  12. SELECT DATEADD(m,-1,dateadd(ms,-3,dateadd(mm,datediff(mm,0,getdate()),0)))
  13. ------ 上上上月最后一天
  14. SELECT dateadd(m,-1,dateadd(ms,-3,dateadd(mm,datediff(mm,0,getdate()),0)-day(dateadd(mm,datediff(mm,0,getdate()),0)-1)))
  15. ---上个月同期
  16. SELECT dateadd(m,-1,getdate()-1)
  17. --本周的星期一
  18. SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
  19. --本周的周日
  20. select dateadd(d,+6 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) )
  21. --上周的星期一
  22. select dateadd(d,-7 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) )
  23. --上周的周日
  24. select dateadd(d,-1 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) )
  25. --一年的第一天
  26. SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
  27. -- 季度的第一天
  28. SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
  29. --.去年的最后一天
  30. SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
  31. --本月的第一个星期一
  32. select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
  33. --本年的最后一天
  34. SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
  35. ----今天0点
  36. SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

Datepart

  1. ---------语法说明
  2. SELECT
  3. --Datepart():返回代表指定日期的指定日期部分的整数
  4. --语法:Datepart(datepart,date)
  5. --返回类型:int
  6. DATEPART(yyyy,getdate()) AS 年,DATEPART(qq,getdate()) AS 季,
  7. DATEPART(mm,getdate()) AS 月, DATEPART(wk,getdate()) AS 周,
  8. DATEPART(dw,getdate()) AS 星期, ----查询是星期几 (从星期日开始计算)
  9. DATEPART(dd,getdate()) AS 日, DATEPART(dy,getdate()) AS 天,
  10. DATEPART(hh,getdate()) AS 时, DATEPART(mi,getdate()) AS 分,
  11. DATEPART(ss,getdate()) AS 秒, DATEPART(ms,getdate()) AS 毫秒
  12. SELECT
  13. getdate() AS 系统当前日期时间, CONVERT(date,getdate()-1,23) AS 日期

DateName

  1. --DateName():返回代表指定日期的指定日期部分的字符串
  2. --语法:DateName(datepart,date)
  3. --返回类型:nvarchar
  4. select
  5. DateName(yyyy,getdate()) AS 年,DateName(qq,getdate()) AS 季,
  6. DateName(mm,getdate()) AS 月, DateName(wk,getdate()) AS 周,
  7. DateName(dw,getdate()) AS 星期, ----查询是星期几 (从星期一开始计算)
  8. DATENAME(dd,getdate()) AS 日, DATENAME(dy,getdate()) AS 天,
  9. DateName(hh,getdate()) AS 时, DateName(mi,getdate()) AS 分,
  10. DateName(ss,getdate()) AS 秒, DateName(ms,getdate()) AS 毫秒

DATEADD

  1. ----- 1、定义
  2. DATEADD() 函数在日期中添加或减去指定的时间间隔。
  3. ------2、语法
  4. DATEADD(datepart,number,date)
  5. --date 参数是合法的日期表达式。number 是您希望添加的间隔数;
  6. ---对于未来的时间,此数是正数,对于过去的时间,此数是负数。
  7. ---年 year,yy,yyyy
  8. ---季度 quarter,qq,q
  9. ---月 MONTH,mm,m
  10. ---一年中的第几天 dayofyear,dy, y
  11. --日 day,dd, d
  12. ---一年中的第几周 week,wk, ww
  13. ----星期几 weekday dw
  14. ---小时 Hour hh
  15. ---分钟 minute,mi, n
  16. ---- 秒 second,ss, s
  17. ---毫秒 millisecond ms
  18. -----微妙 mcs
  19. -----纳秒 ns
  20. SELECT '现在是 '+convert(varchar(4),DATEPART(year, getdate()))+'年'+
  21. convert(varchar(2),DATEPART(month, getdate()))+'月'+
  22. convert(varchar(2),DATEPART(Day, getdate()))+'日 '+datename(dw,getdate())+
  23. ' 第'+convert(varchar(1),DATEPART(quarter,getdate()) )+'季度'+
  24. ' 第'+datename(week,getdate())+'周 '+
  25. convert(varchar(2),DATEPART(hh, getdate()))+' 时 '+
  26. convert(varchar(2),DATEPART(mi, getdate()))+' 分 '+
  27. convert(varchar(2),DATEPART(ss, getdate()))+' 秒 '+
  28. convert(varchar(3),DATEPART(ms, getdate()))+' 毫秒'
  29. AS 时间

DATEDIFF

  1. -------------DATEDIFF定义和用法
  2. DATEDIFF() 函数返回两个日期之间的时间。
  3. -----语法
  4. DATEDIFF(datepart,startdate,enddate)
  5. startdate 和 enddate 参数是合法的日期表达式。
  6. --------datepart 参数可以是下列的值:
  7. datepart 缩写
  8. 年 yy, yyyy
  9. 季度 qq, q
  10. 月 mm, m
  11. 年中的日 dy, y
  12. 日 dd, d
  13. 周 wk, ww
  14. 星期 dw, w
  15. 小时 hh
  16. 分钟 mi, n
  17. 秒 ss, s
  18. 毫秒 ms
  19. 微妙 mcs
  20. 纳秒 ns
  21. -----示例 月份差
  22. SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate
  23. SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate
  24. SELECT DATEDIFF(month,'2018-1-01',getdate())
  25. ---下面示例的语句返回 1:
  26. SELECT datediff( hour, '4:00', '5:50' )
  27. --下面的语句返回 102:
  28. SELECT datediff( month, '1987/05/02', '1995/11/15' )
  29. ---下面的语句返回 0:
  30. SELECT datediff( day, '00:00', '23:59' )
  31. --下面的语句返回 4:
  32. SELECT datediff( day,'1999/07/19 00:00','1999/07/23 23:59' )
  33. --下面的语句返回 0:
  34. SELECT datediff( month, '1999/07/19', '1999/07/23' )
  35. ----下面的语句返回 1:
  36. SELECT datediff( month, '1999/07/19', '1999/08/23' )

CONVERT日期格式转换

  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
  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
  41. Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号