如何添加1年的日期存储为varchar?

时间:2012-04-18 09:32:33

标签: mysql

如何将存储在数据库中的日期值添加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”是参数值并且在外面)

1 个答案:

答案 0 :(得分: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')