如何从mysql中的当前日期时间减去30天?
SELECT * FROM table
WHERE exec_datetime BETWEEN DATEDIFF(NOW() - 30 days) AND NOW();
Run Code Online (Sandbox Code Playgroud)
zer*_*kms 271
SELECT * FROM table
WHERE exec_datetime BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW();
Run Code Online (Sandbox Code Playgroud)
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add
Dou*_*Fir 110
对于不想使用的人DATE_SUB,请使用CURRENT_DATE:
SELECT CURRENT_DATE - INTERVAL 30 DAY
Run Code Online (Sandbox Code Playgroud)
Jos*_*ust 20
让我们不要使用,NOW()因为您丢失任何查询缓存或优化,因为每次查询都不同.请参阅MySQL文档中不应使用的函数列表.
在下面的代码中,我们假设这个表随着时间的推移而增长.添加了新内容,您想要显示过去30天内的内容.这是最常见的情况.
请注意,日期已添加为字符串.最好以这种方式从您的调用代码添加日期,而不是使用该NOW()功能,因为它会终止您的缓存.
SELECT * FROM table WHERE exec_datetime >= DATE_SUB('2012-06-12', INTERVAL 30 DAY);
Run Code Online (Sandbox Code Playgroud)
你可以使用,BETWEEN如果你真的只想在这第二天到第二天之前的第二天到第二天,但这不是我的经验中的常见用例,所以我希望简化的查询可以很好地为你服务.
Eri*_*ski 14
MySQL从现在开始减去天数:
select now(), now() - interval 1 day
Run Code Online (Sandbox Code Playgroud)
打印:
2014-10-08 09:00:56 2014-10-07 09:00:56
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
240705 次 |
| 最近记录: |