登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

樱之花

叶散的时候,你明白欢聚;花谢的时候,你明白青春.

 
 
 

日志

 
 
关于我

分类中“我的实验室”是我在日常工作中的一些知识总结,有些写的比较匆忙,可能大家在阅读时会产生困扰,后期有时间我会重新整理编辑,谢谢大家的到访,您们的支持是我前进的动力!

使用sql语句查询日期在一周内的数据  

2009-12-05 15:43:35|  分类: SQLServer |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近在作公司的一个项目时用到了查询同一周内的数据,感觉挺有用的。sql语句是:
 select  *  from  表  where  datediff(week,时间字段,getdate())=0

也可以稍作修改用来查询与指定日期在同一周内的数据:
select  *  from  表  where  datediff(week,时间字段,2002-01-01)=0

由于ACCESS与SQLServer2000中的某些查询略有不同,所有下面列出access的查询:
select  *  from  表  where  datediff("ww",时间字段,date())=0

下面是指定日期的
select  *  from  表  where  datediff("ww",时间字段,#2002-01-01#)=0

 

不好理解的是:y、w,开始我以为 y 的单位是 365天(与 1年 有点区别噢,见后面的 DateDiff),w 的单位是 7天。其实不是的,细读了微软参考并作了测试后发现,这其中 y、w、d 是同意义的,表示天数。

另外,DateDiff 的第一个参数中 y 和 d 是同意义的,w 不再与 d 同意义,而是表示相隔多少个 7天,这与 ww 不同。假如今天是一周的第一天,至于星期几是一周的第一天得看计算机设置和第四个参数了,那么今天与昨天相隔 0 个 w,相隔 1 个 ww,因为今天与昨天相差不足 1 个 7天,但今天已经是另外一周了。

很难想像吧,但事实就是这样,总结一下。

DateAdd:y、w、d 同意义,都表示天数。
DateDiff:y、d 同意义,都表示天数;w 表示多少个 7天,ww 表示多少周。

--一星期  
  where   时间字段   between   时间字段   and       DATEADD   (week   ,1,时间字段)    
  --一月  
  where   时间字段   between   时间字段   and       DATEADD   (month,1,时间字段)    
  --半年  
  where   时间字段   between   时间字段   and       DATEADD   (month,6,时间字段)    
  --一年  
  where   时间字段   between   时间字段   and       DATEADD   (year,1,时间字段)  

  评论这张
 
阅读(5333)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018