--本日
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怎么获取星期几等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)