我有一张表,其中包含传感器数据:
id,name(varchar),value(float),time(datetime)
现在我需要选择某一天的最大值。
我得到可变数字,例如" 1" ,这意味着它应该是昨天的最高值。
那么我如何使用这个数字来获得今天的最大值?
我知道到目前为止还有这个结构:
subdate(CURDATE(), ".$day.")
还获得了最大值的查询:
SELECT MAX(value) AS value FROM ".$tablename." WHERE sensor_id=? AND value_id=?
但是我把这与日期结合起来有问题......
希望你能提供帮助。 THX
答案 0 :(得分:0)
如果昨天持有的变量是$ date_less而$ datetime是持有currnet日期的变量,那么你的代码看起来像这样
$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'));
有关添加日期的更多信息,您可以看到此link
答案 1 :(得分:0)
根据您问题中的信息(并使用您的变量名称),我认为此查询适用于您:
$query = "SELECT MAX(value) AS value
FROM " . $tablename . "
WHERE sensor_id=? AND
value_id=? AND
DATE(time)=SUBDATE(CURDATE()," . $days . ")";