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