11

是否有查询让我获取时间间隔 - 一分钟、五分钟、一刻钟、半小时、小时和天?我使用 MySQL 作为数据库。

4

2 回答 2

12

得到一个范围,比如从 30 到 45 分钟前,这样做

SELECT * FROM tbl 
WHERE tbl.mydate > DATE(DATE_sub(NOW(), INTERVAL 45 MINUTE)) 
AND tbl.mydate < DATE(DATE_sub(NOW(), INTERVAL 30 MINUTE));
于 2013-11-13T23:16:34.567 回答
6

您可能正在寻找date_sub

SELECT * FROM YOURTABLE t
WHERE t.timestamp > date_sub(NOW(), interval 1 hour);

对于不同的时间间隔,您可以将 1 小时更改为 5 天、5 周等)。

从文档中:

DATE_SUB(日期,INTERVAL expr 单位)

date 参数指定开始日期或日期时间值。expr 是一个表达式,指定要从开始日期添加或减去的间隔值。expr 是一个字符串;对于负间隔,它可能以“-”开头。unit 是一个关键字,表示应该解释表达式的单位。

下表显示了每个单位值的 expr 参数的预期形式。

unit Value     Expected expr Format

MICROSECOND    MICROSECONDS
SECOND         SECONDS
MINUTE         MINUTES
HOUR           HOURS
DAY            DAYS
WEEK           WEEKS
MONTH          MONTHS
QUARTER        QUARTERS
YEAR           YEARS
于 2013-11-13T23:12:30.293 回答