我有一个保存传感器数据的表格:
id, name(varchar), value(float), time(datetime)
现在我需要选择某一天的最大值。
我得到一个像"1"这样的变量,这意味着它应该是昨天的最高值。
那么如何使用这个数字来获得这一天的最大值呢?
到目前为止,我知道有这个结构:
subdate(CURDATE(), ".$day.")
并且还查询了最大值:
SELECT MAX(value) AS value FROM ".$tablename." WHERE sensor_id=? AND value_id=?
但是我有问题将其与日期结合起来...
希望你能帮上忙。
根据您的问题中的信息(并使用您的变量名称),我认为此查询将适合您:
$query = "SELECT MAX(value) AS value
FROM " . $tablename . "
WHERE sensor_id=? AND
value_id=? AND
DATE(time)=SUBDATE(CURDATE()," . $days . ")";
如果你昨天持有的变量是 $date_less 并且$datetime是持有当前日期的变量,那么你的代码看起来像这样
$datetime = date("Y-m-d H:i:s");
$date_less = 1;
"SELECT MAX(value) AS value FROM ".$tablename." WHERE sensor_id=? AND value_id=? and `time` = ".date('Y-m-d H:i:s', strtotime($datetime.' -'.$date_less.' days'));
有关添加日期的详细信息,请参阅此链接