使用sql語句查詢日期在一周內的資料

2021-06-02 12:22:24 字數 1242 閱讀 2363

最近在作公司的乙個專案時用到了查詢同一周內的資料,感覺挺有用的。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,時間字段) 

根據日期查詢這一周的所有日期

static string gewek catch parseexception e calendar cal calendar.getinstance cal.clear cal.settime date 判斷要計算的日期是否是週日,如果是則減一天計算週六的,否則會出問題,計算到下一周去了 int...

Oracle關於一周內資料查詢 DATE

trunc的用法 1.select trunc sysdate from dual 2013 01 06 今天的日期為2013 01 06 2.select trunc sysdate,mm from dual 2013 01 01 返回當月第一天.3.select trunc sysdate,yy...

在django中使用sql語句查詢

django中提供了乙個raw 方法來使用sql語句進行查詢 class person models.model first name models.charfield max length 50 last name models.charfield max length 50 birth date...