查找mysql“SELECT MIN(Celsius)”的日期/时间

时间:2015-11-24 11:17:32

标签: mysql

使用此:

template <template<typename val_t, typename...> class container_t = std::vector> struct foo; {digitemp {1}}的SerialNumber $maxtime = mysql_query( //Outdoortemp max "SELECT MIN(Celsius), time FROM

给我“2015-11-23 00:00:09 ----- 8.31”,但最低温度发生在早上8点左右。如何从包含最低温度的实际生产线获取日期/时间? $ datetime是从表单选择日期(日历样式)获得的时间。 谢谢,Ralph在瑞典

1 个答案:

答案 0 :(得分:0)

这是SQL中的三个步骤。

首先,你需要找到极端温度。你喜欢这样。

        SELECT MIN(Celsius) Mintemp,
               SerialNumber,
               DATE(`time`) Daystamp
          FROM digitemp
         GROUP BY SerialNumber, DATE(`time`)

这为您提供了日期,传感器和最短时间的列表。

然后将该结果集连接到主表以提取与最低温度匹配的详细信息行。

 SELECT a.`time`, a.Celsius, a.SerialNumber
   FROM digitemp a
   JOIN (
            SELECT MIN(Celsius) Mintemp,
                   SerialNumber,
                   DATE(`time`) Daystamp
              FROM digitemp
         GROUP BY SerialNumber, DATE(`time`)
        ) b     ON a.Celsius = b.MinTemp
               AND a.SerialNumber = b.SerialNumber
               AND DATE(a.`time`) = b.Daystamp

了解JOIN的ON子句如何将digitemp详细记录中的行与最小查询中的行进行匹配?

最后,如果您只需要特定范围的日期或特定传感器,则可以附加合适的WHERE子句。例如,这给出了昨天的读数。

   WHERE a.`time` >= CURDATE() - INTERVAL 1 DAY
     AND a.`time < CURDATE()
     AND a.SerialNumber = '105C0EE5000800B4'