PHP中MySQL的两次时差

时间:2015-11-13 18:37:38

标签: php mysql time difference

我在这个结构中构建了一个数据库表。

ID      - INT
addDate - DateTime
sunrise - Time
sunset  - Time

数据集看起来像

现在我试图检索

之间的分钟差异
SELECT addDate, TIMESTAMPDIFF(MINUTE, sunrise, sunset) AS duration FROM SunData WHERE date(addDate) BETWEEN curdate() - interval 7 day and curdate() ORDER BY addDate ASC

结果我在每一行中都持续为NULL。

显示这些值的代码

$date = date("Y-m-d H:i:s", strtotime(str_replace('-','/',$row->addDate)));
$duration = $row->duration / 60;

echo "Dauer: " . $duration . "Stunden\n";

为什么价值越来越少?我的查询是否正确?

2 个答案:

答案 0 :(得分:1)

您按addDate按升序排序。您正在考虑now()addDate之间的差异。升序意味着addDate越来越大,因此addDatenow()之间的差异会越来越小。

答案 1 :(得分:0)

我并不确切地知道你的目标是什么 - 但是每一条记录你都接近现在() - 这就是为什么价值越来越少的原因。

您的查询不使用日出和日落字段:

SELECT addDate, TIMESTAMPDIFF(MINUTE, DATE_ADD(addDate,sunset), DATE_ADD(addDate, sunrise))