php - 24小时值(value)

标签 php mysql date

我有一个 sql 表:日期 (Y-m-d)/时间 (00:00:00)/功率 (INT)

当我从内联日期选择器中选择一个日期时,我试图发布 3 个 HighCharts 图表(1-24 小时、一个月中的 2-31 天、一年中的 3-12 个月),我需要从中获取值要创建的图表的表格。

对于这一天,我需要每小时“100,200,300,200,300 等”的 24 个值。

这是“一天”的 PHP,但它不工作...

<?php
$choice = (isset($_POST['choice'])) 
          ? date("Y-m-d",strtotime($_POST['choice'])) 
          : date("Y-m-d"); 
$con = mysql_connect("localhost","root","xxxxxx");  
if (!$con)  {  
  die('Could not connect: ' . mysql_error());  
}  
mysql_select_db("inverters", $con);  
$sql = "SELECT HOUR(time), COUNT(power) 
FROM feed 
WHERE time = DATE_SUB('".$choice."', INTERVAL 24 HOUR) 
GROUP BY HOUR(time) 
ORDER BY HOUR(time)"; 
$res = mysql_query($sql) or die('sql='.$sql."\n".mysql_error()); 
$row = mysql_fetch_assoc($res); 
echo $row['choice'].'<br />'; 
?>

这已被另一个人确认该代码不起作用,有人可以提供有用的解决方案来修复错误吗?

艾伦

最佳答案

目前,您的SELECT 只为您提供当前时刻之前恰好 24 小时发生的结果。你需要的是一个范围。 1 小时的示例(为清楚起见添加了缩进):

WHERE `time` BETWEEN 
   DATE_SUB('".$choice."', INTERVAL 24 HOUR) 
   AND DATE_SUB('".$choice."', INTERVAL 23 HOUR) 

这样,您将获得 时间 在“现在 - 24 小时”和“现在 - 23 小时”的 1 小时范围内的结果。 BETWEEN运算符等同于:

WHERE `time` >= DATE_SUB('".$choice."', INTERVAL 24 HOUR)
   AND `time` <= DATE_SUB('".$choice."', INTERVAL 23 HOUR) 

关于php - 24小时值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342807/

相关文章:

java - 计算两个 Java 日期实例之间的差异

php - 将不同的数据插入两个表中

mysql - 重新格式化邮政编码以包含空格

php - 日期之间的错误搜索

php - 计算 MySQL 列中的总值并在 PHP 中检索值

mysql - 从 mysql 数据库操作系统大小 700Mb 中快速选择最后 n 条记录

java - 将 Sax 解析器数据作为 Hashmap 存储在数组列表中

javascript - 从服务器获取数据到客户端,无需刷新页面

php - 通过电子邮件发送动态创建的图像

php - 使用 PHP 获取 IP 信息