您的位置:程序门 -> ms-sql server -> 疑难问题



计算日期时间碰到的疑难问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


计算日期时间碰到的疑难问题
发表于:2007-08-23 21:02:31 楼主
我的数据库里记录着服务器每天发生事件,现在需要统计上星期中每个时段的情况,对现在来说,上星期就是8.13~8.19,如果到下星期,那上星期就是8.20~8.26,请问如果用sql的时间函数来自动实现实现,而不是手工去设置时间,谢谢。
发表于:2007-08-23 21:44:221楼 得分:0
select   *   from   tbltest   where   datediff(week,   datecol,   getdate())   =   1

select   *   from   tbltest   where   datediff(day,   datecol,   getdate())   =   7
发表于:2007-08-23 21:54:442楼 得分:0
datepart()函数和dateadd()函数组合运用。

因为datepart(weekday,   getdate())的返回和数据库设置有关,默认星期日返回1,一至六返回2至7。
发表于:2007-08-23 22:00:163楼 得分:0
按你要求:8.13~8.19
select   dateadd(day,   -   5   -   datepart(weekday,   getdate()),   getdate())   --8.13
select   dateadd(day,   1   -   datepart(weekday,   getdate()),   getdate())   --8.19
发表于:2007-08-23 22:19:384楼 得分:0
你还厉害啊
发表于:2007-08-23 22:19:595楼 得分:0
我的数据库里记录着服务器每天发生事件,现在需要统计上星期中每个时段的情况,对现在来说,上星期就是8.13~8.19,如果到下星期,那上星期就是8.20~8.26,请问如果用sql的时间函数来自动实现实现,而不是手工去设置时间,谢谢。

获取上个星期的时间
select   *   from   tb   where   datediff(week,   时间字段,   getdate())   =   1  

统计
select   时间字段,sum(....)   from   tb   where   datediff(week,   时间字段,   getdate())   =   1   group   by   时间字段


快速检索

最新资讯
热门点击