【问题标题】:How to select rows according to time interval in mysql?如何在mysql中根据时间间隔选择行?
【发布时间】:2018-10-26 00:38:17
【问题描述】:

我有一个具有这样时间戳的数据库:

2018-10-25 13:00:00 
2018-10-25 15:00:10 
2018-10-25 16:10:00 
2018-10-25 17:00:00 

现在我只想选择最后一小时的日期 我试图运行它 -

SELECT * FROM sample.writing where (date(Date) = interval 1 hour )

怎么了? 日期为DateTime 类型。

谢谢:)

【问题讨论】:

    标签: mysql date time


    【解决方案1】:
    • 首先,Date 是一个Keyword in MySQL。您真的应该避免将其用作表/列名。
    • 要获取当前时间前 1 小时的时间,您可以使用 Date_add() 函数将 INTERVAL -1 HOUR 添加到当前时间 (NOW())。
    • 我们可以使用BETWEEN low-value AND high-value比较运算符,来获取规定范围内的值。

    尝试以下查询:

    SELECT * 
    FROM sample.writing 
    where Date BETWEEN DATE_ADD(NOW(), INTERVAL -1 HOUR) AND NOW()
    

    【讨论】:

    • 工作,谢谢! ---- 另外我怎么能告诉他从特定时间开始看?从 2018-10-25 15:35:00 开始看?
    • @David12123 只需更改between .. and ..两侧的参数
    • 工作 - 再次感谢!
    • @Strawberry 更新了答案;感谢您指出。我相信如果它是保留关键字,我们仍然应该使用反引号(仅限 MySQL)。
    【解决方案2】:

    假设表只存储过去的事件...

    SELECT * 
      FROM sample.writing 
     where date >= NOW() - INTERVAL 1 HOUR;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多