在sql server 2008中如何查询本日、本周和本月数据

在sql server 2008中如何查询本日、本周和本月数据,第1张

--本日

select  from table where col between cast((convert(varchar(10),getdate(),120) as datetime) and cast((convert(varchar(10),getdate(),120)+' 23:59:59997' as datetime)

SELECT  FROM table WHERE datediff(day,col,getdate())=0

--本周

SELECT  FROM table WHERE datediff(week,col,getdate())=0

--本月

select  from table where col between cast((convert(varchar(7),getdate(),120)+'-1' as datetime) and cast((convert(varchar(7),dateadd(m,1,,getdate()),120)+'-1' as datetime)

--获取本周时间段

SELECT DATEADD(WK,DATEDIFF(WK,0,GETDATE()),-1)

SELECT DATEADD(WK,DATEDIFF(WK,0,GETDATE()),6)

--获取本月时间段值

SELECT DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0)

SELECT DATEADD(MS,-3,DATEADD(MM,DATEDIFF(M,0,GETDATE())+1,0))

--获取本年时间段值

SELECT DATEADD(YY,DATEDIFF(YY,0,GETDATE()),0)

SELECT DATEADD(MS,-3,DATEADD(YY,DATEDIFF(YY,0,GETDATE())+1,0))

今天工作中遇到一个需求:在每周的星期一至星期五的下午四点到五点,禁用一个程序的功能。这个功能是依赖于数据库中的存储过程的,因此想到了一个在存储过程中处理这个方法的解决方案。

if(当前时间在星期一至星期五之间and当前时间在16点至17点之间)beginreturnend

这个方法基于两个T-SQL内置函数:DATEPART()和@@DATEFIRST

DATEPART()函数的第一个参数可以是”weekday”,这时返回日期的星期数,在当前星期序列的次序。这个序列次序则依赖于SET DATEFIRST设置的参数,且可以通过@@DATEFIRST函数查看。所以DATEPART(WRRKDAY,GETDATE())这样获得的一个值是相对值。且相对的原点还是未知,这样会造成BUG。因此应该对这个方法进行一定的修改。

–加入一些相对偏移后的获取当前是星期几的方法DATEPART(WEEKDAY,

以上就是关于在sql server 2008中如何查询本日、本周和本月数据全部的内容,包括:在sql server 2008中如何查询本日、本周和本月数据、sql 怎样获取 时间段、SQL怎么获取星期几等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9528559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存