从当前一周减去一周

时间:2014-03-06 12:00:38

标签: mysql sql date datetime

我想提前一周比一年中的当前一周,但我的SQL查询返回null。这是我的查询

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

此查询有什么问题

6 个答案:

答案 0 :(得分:3)

如果您希望在约会之前获得YEARWEEK周,则可以执行以下操作: 注意:YEARWEEK会产生6位数字,前4位数字是星期年份,后2位数字是星期数字。

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

如果您需要在指定日期前一周获得date,那么:

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

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

试试这个: -

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

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

答案 3 :(得分:0)

问题在于DATE_SUB将日期作为第一个争论,但是一周返回yyyyww,即不是日期。所以这个:

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

返回201352,然后将其隐式转换为日期,因为它不是结果为null的日期。你可以通过这样做来复制它:

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

因此,如果您从NULL减去一周,结果也是NULL

修复方法是首先减去一周,然后得到年份周:

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

结果是201351

答案 4 :(得分:0)

你正在寻找周数???如果是,那么请尝试这个,如果它适合你

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

如果您正在寻找别的东西,请告诉我。

答案 5 :(得分:0)

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