2014-03-06 125 views
2

我想提前一週,然後一週的當前周,但我的SQL查詢返回null。這裏是我的查詢從當年的當周減去一週

select date_sub(yearweek('2014-01-01'),INTERVAL 1 week) 

什麼是錯的這個查詢

回答

0

試試這個

select date_sub(date('2014-01-01'),INTERVAL 1 week) 
0

試試這個: -

DATE_SUB(date('2014-01-01'), INTERVAL 7 DAY) 

SELECT '2014-01-01' - INTERVAL 1 WEEK 
3

如果您想獲得日期前一週的YEARWEEK,您可以這樣做: 注:YEARWEEK結果爲6位數字,前4位數字爲週年,後2位數字爲週數。

SELECT YEARWEEK('2014-01-01' - INTERVAL 1 WEEK) 

如果你需要得到date這是一個給定的日期之前一個星期,然後:

SELECT '2014-01-01' - INTERVAL 1 WEEK 
0

的問題是,DATE_SUB需要一個日期作爲第一arguement,但今年一週返回yyyyww即不是約會。所以這個:

SELECT yearweek('2014-01-01'); 

返回201352,這是再隱式澆鑄爲日期,因爲它不是一個日期的結果爲空。您可以通過執行復制這樣的:如果你減去,每週從NULL

SELECT DATE(yearweek('2014-01-01')); 

所以結果也是NULL

解決方法是先減去一週,然後拿到年終周:

SELECT yearweek(date_sub('2014-01-01', INTERVAL 1 WEEK)); 

,結果是201351

0

你在尋找週數嗎???如果是的話,請試試這個,如果它能爲你工作

Select DatePart(Week, Date add(day,-7,convert(date time,'01-jan-2014'))) 

請讓我知道,如果你正在尋找別的東西。

0
SELECT * FROM [table] WHERE WEEKOFYEAR(date) = WEEKOFYEAR(NOW()) - 1;