繁体   English   中英

PHP中MySQL两次之间的时差

[英]Difference between two Times in MySQL by PHP

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

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";

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

您是按addDate升序排列的。 您正在考虑now()addDate之间的区别。 升序意味着addDate不断变大,因此addDatenow()之间的差异不断变小。

我不确切知道您的目标是什么-但随着每条记录您越来越接近now()-这就是为什么值越来越少的原因。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM