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,時間字段)  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章