0

我的数据库日期类似于 8 月 9 日的“2013-07-09”。SYSDATE() 是“2013-08-09”,也是 8 月 9 日。当我要使用这个 SYSDATE() 将数据输入数据库时​​,需要 08 月份,即 9 月。所以我想在 SYSDATE() 中减去一个月。

4

3 回答 3

2

您的数据库中发生了一些奇怪的事情。在我看来,系统时间设置不正确,或者其他错误。

“2013-07-09”是2013年7月9日。“yyyy-mm-dd”是布局。“2013-08-09”是2013年8月9日。

没有有效且正确设置的 MySQL 实例,其中“2013-07-09”表示 8 月 9 日,反之亦然。“08”月从来就不是九月。所以,如果你的约会有任何意义,你需要尽快查明真相。加载大量数据且日期错误的 DBMS 系统是一场持续的噩梦:我从亲身经历中知道这一点。

如果您需要任何日期前一个月的日期,请使用此 MySQL 表达式。

DATE_SUB(whatever_date, INTERVAL 1 MONTH)

还有一些你需要知道的东西:意味着与一个小的区别NOW()相同的东西:在每个查询的执行期间只评估一次,而在数据库引擎想要的时候重新评估。大多数程序员认为这是一个更好的选择,因为它是确定性的。SYSDATE()NOW()SYSDATE()NOW()

于 2013-08-09T11:36:13.120 回答
1

DATE_SUB(sysdate(),INTERVAL 1 MONTH) 会给你 sysdate 减去一个月。

于 2013-08-09T10:09:48.030 回答
1
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH)
于 2013-08-09T10:10:10.030 回答