我的数据库日期就像 “2013-07-09”即 8 月 9 日。 SYSDATE() 是“2013-08-09”,也是 8 月 9 日。 当我要使用此 SYSDATE() 将数据导入数据库时,需要 08,即月份数是 9 月。 所以我想在 SYSDATE() 中减去一个月。
最佳答案
您的数据库中发生了一些奇怪的事情。在我看来,系统时间设置不正确,或者有其他问题。
“2013-07-09”是2013年7月9日,“yyyy-mm-dd”是布局。 "2013-08-09"为2013年8月9日。
没有有效且正确设置的 MySQL 实例,其中“2013-07-09”表示八月九日,反之亦然。 “08”月从来都不是指九月。所以,如果你的日期有任何意义,你需要快速查明真相。 DBMS 系统加载了大量日期错误的数据是一场持续不断的噩梦:我从惨痛的经历中了解到这一点。
如果您需要 whatever_date 前一个月的日期,请使用此 MySQL 表达式。
DATE_SUB(whatever_date, INTERVAL 1 MONTH)
还有一些您需要了解的内容:NOW()
与 SYSDATE()
的含义相同,只是有一个小区别:NOW()
在每个查询的执行期间仅被评估一次,而 SYSDATE()
会在数据库引擎需要时重新评估。大多数程序员认为 NOW()
是更好的选择,因为它是确定性的。
关于mysql - 如何在mysql的SYSDATE()中减去一个月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18144265/