我想提前一周,然后一周的当前周,但我的SQL查询返回null。这里是我的查询从当年的当周减去一周
select date_sub(yearweek('2014-01-01'),INTERVAL 1 week)
什么是错的这个查询
我想提前一周,然后一周的当前周,但我的SQL查询返回null。这里是我的查询从当年的当周减去一周
select date_sub(yearweek('2014-01-01'),INTERVAL 1 week)
什么是错的这个查询
试试这个
select date_sub(date('2014-01-01'),INTERVAL 1 week)
试试这个: -
DATE_SUB(date('2014-01-01'), INTERVAL 7 DAY)
或
SELECT '2014-01-01' - INTERVAL 1 WEEK
如果您想获得日期前一周的YEARWEEK
,您可以这样做: 注:YEARWEEK
结果为6位数字,前4位数字为周年,后2位数字为周数。
SELECT YEARWEEK('2014-01-01' - INTERVAL 1 WEEK)
如果你需要得到date
这是一个给定的日期之前一个星期,然后:
SELECT '2014-01-01' - INTERVAL 1 WEEK
的问题是,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
。
你在寻找周数吗???如果是的话,请试试这个,如果它能为你工作
Select DatePart(Week, Date add(day,-7,convert(date time,'01-jan-2014')))
请让我知道,如果你正在寻找别的东西。
SELECT * FROM [table] WHERE WEEKOFYEAR(date) = WEEKOFYEAR(NOW()) - 1;