代码之家  ›  专栏  ›  技术社区  ›  Dave

在mysql中,如何以特定间隔在两个日期时间之间提取值?

  •  2
  • Dave  · 技术社区  · 16 年前

    我有一个应用程序,它每秒将温度值写入一个mysql表,它由温度和日期时间字段组成。

    我需要在特定的时间间隔,每一秒,每一分钟,每一小时,从表格中取出这些值。

    例如,我需要在两个datetime字段之间提取值,并显示每个字段的小时温度。

    我考虑过的一个选项是创建一个临时表,其中包含使用mysql interval生成的时间间隔列表,然后将其与主表连接。

    我只是想知道mysql中是否有一些我忽略的时间和日期函数可以让这一切变得更简单?

    谢谢。

    1 回复  |  直到 16 年前
        1
  •  3
  •   Sampson    16 年前

    你可以用 between 对于您的日期,然后使用条件where子句 time() 看看时间戳的结构。如果里面有00:00(例如,16:00:00),拿着它,如果没有,就留下它。

    示例(未测试):

    SELECT temp, date
    FROM temperatures
    WHERE (date BETWEEN '2009/01/03 12:00:00' AND '2009/01/04 12:00:00') 
     AND  (time(date) LIKE '%:00:00')
    ORDER BY date ASC
    LIMIT 10