0

如何将 1 年添加到作为 varchar 存储在数据库中的日期值(格式:“2011.03”)?

我正在尝试这个,但返回 NULL :(

DATE_FORMAT(DATE_ADD(STR_TO_DATE('2011.03', '%Y.%m'), INTERVAL 1 YEAR),'%Y.%m')

非常感谢!

编辑。:这是我要使用的查询:

SELECT DISTINCT column FROM table WHERE column  BETWEEN '2011.03' AND DATE_FORMAT(DATE_ADD(STR_TO_DATE('2011.03', '%Y.%m'), INTERVAL 1 YEAR),'%Y.%m') ORDER BY column  DESC

(“2011.03”是一个参数值,在外面)

4

1 回答 1

4

你正在尝试的是给出正确的结果

尝试 :

SELECT DATE_FORMAT(DATE_ADD(STR_TO_DATE('2011.03', '%Y.%m'), INTERVAL 1 YEAR),'%Y.%m')

它在给2012.03

编辑:

您可以使用以下技巧使其在 mysql 版本 > 5.0 中可用

添加月份和日期,因为在 Mysql 版本 > 5.0 中str_to_date(),如果 %D 格式说明符不是格式字符串输入中的最后一个说明符,有时会返回 NULL。

试试下面:

 SELECT DATE_FORMAT(DATE_ADD(STR_TO_DATE('2011.03.01', '%Y.%m.%d'), INTERVAL 1 YEAR),'%Y.%m')
于 2012-04-18T09:38:30.987 回答