我的数据库日期就像 “2013-07-09”即8月9日。 SYSDATE()是“2013-08-09”,即8月9日。 当我要使用此SYSDATE()获取数据到数据库时,需要08,即月份数为9月。 所以我想在SYSDATE()中减去一个月。
答案 0 :(得分:2)
您的数据库中发生了一些奇怪的事情。在我看来,系统时间设置不正确,或其他错误。
“2013-07-09”是2013年7月9日。“yyyy-mm-dd”是布局。 “2013-08-09”是2013年8月9日。
没有有效且正确设置的MySQL实例,其中“2013-07-09”表示8月9日,反之亦然。月“08”从未意味着九月。因此,如果您的日期有任何意义,您需要快速了解这一点。数据库管理系统系统装载了大量数据并且结账日期是一个持续的噩梦:我从艰苦的经历中了解到这一点。
如果您需要在whatever_date之前一个月的日期,请使用此MySQL表达式。
DATE_SUB(whatever_date, INTERVAL 1 MONTH)
还需要了解其他一些内容:NOW()
与SYSDATE()
的含义相同,只有很小的区别:NOW()
在执行每个查询时只评估一次,而SYSDATE()
每当数据库引擎想要时,都会重新评估1}}。大多数程序员认为NOW()
是更好的选择,因为它是确定性的。
答案 1 :(得分:1)
DATE_SUB(sysdate(),INTERVAL 1 MONTH)会给你sysdate减去一个月。
答案 2 :(得分:1)
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH)