Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
sql server 获取今天的数据_sqlserver获取当前日期时间,希望能够帮助你!!!。
写SQL脚本时间长了,大家就会有一种感觉,那就是日期的运用非常广泛。各种数据和报表统计,往往都少不了对某段日期的数据进行查询和处理。
如果是具体的日期,使用'2018-11-19'这种格式即可满足,但我们统计的往往不是某一个固定日期,而是基于固定日期的某个日期段,比如本月第一天到本月最后一天、上月第一天到上月最后一天等等,那如何才能获取这些特殊的日期点呢?
SQL Server中使用getdate()获取当前时间,dateadd()对日期时间进增加或减少,datediff()计算日期时间之间的差值,datepart()获取日期时间的单项值。
dateadd函数的格式为:DATEADD(datepart,number,date)
其中datepart的含义参看下图,后面datediff和datepart中使用的datepart,也是适用的。
如果觉得使用缩写不够直观,也可以直接使用单词表示,比如年使用year、季度使用quarter、月使用month、日使用day、周使用week、小时使用hour等也是可以的。
datediff函数的格式为:DATEDIFF(datepart,startdate,enddate)
datepart函数的格式为:DATEPART(datepart,date)
我下面对常用的特殊日期获取方法做一个整理,权当抛砖引玉,希望对您有所帮助。
select dateadd(dd, -day(dateadd(month, -1, getdate())) + 1, dateadd(month, -1, getdate()))
select dateadd(day, -day(getdate()), getdate())
select dateadd(day, -day(getdate()) + 1, getdate())
select dateadd(day, -day(dateadd(month, 1, getdate())), dateadd(month,1 , getdate()))
select dateadd(day, -day(dateadd(month, 1, getdate())) + 1,dateadd(month, 1, getdate()))
select dateadd(day, -day(dateadd(month, 2 ,getdate())), dateadd(month, 2, getdate()))
select dateadd(week, datediff(week, 0, getdate()), 0)
select dateadd(quarter, datediff(quarter, 0, getdate()), 0)
select dateadd(ms, -3, dateadd(quarter, datediff(quarter, 0, getdate()) + 1, 0))
select dateadd(week, datediff(week, 0, dateadd(day, 6 - datepart(day, getdate()), getdate())), 0)
select dateadd(year, datediff(year, 0, getdate()), 0)
select dateadd(ms, -3, dateadd(year, datediff(year, 0, getdate()) + 1, 0))
select dateadd(ms, -3, dateadd(year, datediff(year, 0, getdate()), 0))
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。