2018年的MYSQL日期计算

时间:2018-01-08 12:26:58

标签: mysql sql dateadd

我有一个mysql脚本,我每个星期一都在运行大约8个月到2017年。它已经停止工作,现在我们在2018年。

以下是我遇到问题的代码

select date_format(date_add(STR_TO_DATE(concat(201750, ' Monday'), '%X%V %W'), interval -7 day),"%x%v")

您期望的结果产生201749,即201750 - 7天

但是以下代码

    select date_format(date_add(STR_TO_DATE(concat(201802, ' Monday'), '%X%V %W'), interval -7 day),"%x%v")

产生201802但它应该产生201801。

1 个答案:

答案 0 :(得分:0)

我找到了这个问题的答案。我不得不将格式代码从%X%V更改为%x%v(即从大写到小写)。大写X& V表示从星期一开始的一周,小写表示星期日。出于某种原因,大写字母适用于2017年而不是2018年,但是小写适用于我迄今为止测试的所有年份。