0

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

2 回答 2

1

你的例子对我来说也很好,它可能是一个配置错误......尝试将结果转换为日期:

SELECT DATE(DATE_ADD('2013-07-19', INTERVAL 1 MONTH))
于 2013-07-19T15:57:06.667 回答
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);
于 2013-07-19T15:44:59.973 回答