MySQL奇怪的date_add间隔

时间:2013-07-19 15:40:49

标签: mysql date intervals

我想在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)

2 个答案:

答案 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.595.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);