我想在MySQL 5.1.66-0 + squeeze1上添加1个月的日期时间。
当我这样做时:
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH)
结果是:
2013-08-19 17:36:34
没关系。但是当我这样做时:
SELECT DATE_ADD("2013-07-19 17:37:00", INTERVAL 1 MONTH)
结果是:
323031332d30382d31392031373a33373a3030
同样:
SELECT DATE_ADD("2013-07-19", INTERVAL 1 MONTH)
结果是:
323031332d30382d3139
我不明白什么是错的:(
感谢。
编辑:我试过了,但错误是一样的。SELECT DATE_ADD("2013-07-19", INTERVAL 31 DAY)
SELECT ADDDATE("2013-07-19", 31)
答案 0 :(得分:1)
你的exmple也适合我,它可能是一个配置错误...尝试将结果转换为DATE:
SELECT DATE(DATE_ADD('2013-07-19', INTERVAL 1 MONTH))
答案 1 :(得分:0)
试试这个
SELECT DATE_ADD("2013-07-19", INTERVAL 31 DAY)
编辑:
从MySQL 5.1.59
到5.1.61
,处理与日期相关的断言的变化导致几个函数在传递DATE()函数值作为其参数时变得更加严格,并拒绝不完整的日期与零日的一部分。这些函数受到影响:CONVERT_TZ(),DATE_ADD(),DATE_SUB(),DAYOFYEAR(),LAST_DAY(),TIMESTAMPDIFF(),TO_DAYS(),TO_SECONDS(),WEEK(),WEEKDAY(),WEEKOFYEAR(),YEARWEEK ()。因为这会更改一般可用性状态系列MySQL 5.1中的日期处理行为,所以更改已在5.1.62中还原。
你也可以这样做
SELECT ADDDATE('2013-07-19', 31);