如何从mysql中的当前日期时间减去30天

如何从 mysql 中的当前日期时间减去 30 天?

如何从 mysql 中的当前日期时间减去 30 天?

SELECT * FROM table
WHERE exec_datetime BETWEEN DATEDIFF(NOW() - 30 days) AND NOW();
386
SELECT * FROM table
WHERE exec_datetime BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW();
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add
170

对于不想使用DATE_SUB的人,请使用CURRENT_DATE

SELECT CURRENT_DATE - INTERVAL 30 DAY
31

MySQL 减去从现在开始的天数:

select now(), now() - interval 1 day

打印:

2014-10-08 09:00:56     2014-10-07 09:00:56

其他时间间隔时间表达式单位参数:

https://dev.mysql.com/doc/refman/5.5/en/expressions.html#temporal-intervals
select now() - interval 1 microsecond 
select now() - interval 1 second 
select now() - interval 1 minute 
select now() - interval 1 hour 
select now() - interval 1 day 
select now() - interval 1 week 
select now() - interval 1 month 
select now() - interval 1 year 
28

请不要使用NOW(),因为每次查询都不同,所以会丢失任何查询缓存或优化。请参阅MySQL documentation中不应该使用的函数列表。

在下面的代码中,让我们假设这个表是随着时间增长的。添加了新的东西,你想只显示过去 30 天的东西。这是最常见的情况。

请注意,日期已被添加为字符串。最好以这种方式添加日期,从您的调用代码,而不是使用NOW()函数,因为它会杀死您的缓存。

SELECT * FROM table WHERE exec_datetime >= DATE_SUB('2012-06-12', INTERVAL 30 DAY);

您可以使用BETWEEN如果你真的只是想从这一秒到这一秒前 30 天的东西,但这不是我的经验中的常见用例,所以我希望简化的查询可以很好地为您服务。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(421)
数据库 vs文件系统存储
上一篇
Apple-暂停/退款应用内自动续订订阅
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(21条)