如何在 MySQL 中选择最近 30 天的日期?

Posted

技术标签:

【中文标题】如何在 MySQL 中选择最近 30 天的日期?【英文标题】:How to select last 30 days dates in MySQL? 【发布时间】:2014-02-08 19:41:18 【问题描述】:

我可以在mysql 中以某种方式列出过去 30 天的日期吗?不是来自桌子!

例如我这样想:

SELECT date WHERE date BETWEEN SUBDATE(NOW(), INTERVAL 30 DAY) AND NOW();

这可能吗?

【问题讨论】:

搜索是你的朋友。看这里:***.com/questions/2041575/… 是的,我不想用FROM <table> 如果您不想搜索表格,您会怎么做? 嗯,您要选择数据库中所有表的最近 30 个日期吗? 不确定是否可以使用 MySQL 列出这样的日期。您应该为此创建一个函数:***.com/questions/510012/… 【参考方案1】:

我从别人的代码中破解了这个,但它似乎有效:

SELECT DATE_FORMAT(m1, '%d %b %Y')
FROM (
SELECT SUBDATE( NOW() , INTERVAL 30 DAY) + INTERVAL m DAY AS m1
FROM (
select @rownum:=@rownum+1 as m from
(select 1 union select 2 union select 3 union select 4) t1,
(select 1 union select 2 union select 3 union select 4) t2,
(select 1 union select 2 union select 3 union select 4) t3,
(select 1 union select 2 union select 3 union select 4) t4,
(select @rownum:=-1) t0
) d1
) d2 
WHERE m1 <= now()
ORDER BY m1

valex的原始代码在这里:

How to get a list of months between two dates in mysql

【讨论】:

【参考方案2】:

您可以通过“显式”方式执行此操作。即生成一系列数字并计算日期:

select date(date_sub(now(), interval n.n day) as thedate
from (select 1 as n union all
      select 2 union all
      . . .
      select 30
     ) n

【讨论】:

以上是关于如何在 MySQL 中选择最近 30 天的日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 中选择最近 7 天的日期

使用 Mongoid 和 Ruby 查询最近 30 天的日期范围?

mysql如何出查出最近7天,最近30天,最近n天的记录?

PHP - 如何从 MySQL 中选择过去 30 天的记录 [重复]

审查超过 3 个月和最近 30 天内的脚本

如何使用 0 值的 MySQL 获得最近 30 天的结果?