mysql - 如何在mysql的SYSDATE()中减去一个月?

标签 mysql

我的数据库日期就像 “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/

相关文章:

php - 在 angularjs 中定义路由后,注册表单不起作用

mysql - 如何从MYSQL中的日期列表中获取开始年份和结束年份

mysql - 参数化嵌套查询

PHP/MySQL 查询。选择一个或另一个

现有列上的Mysql未知列(仅插入)

php - MySQL错误: This command is not supported in the prepared statement protocol yet

php - 如何将列记录与表头相关联?

mysql - windows7上node.js-mysql连接失败

php - 用于使用插件创建表格的 Wordpress 法典?

mysql - 列值等于 false 时的唯一约束?