我在数据库名称“booking”中有下表
id userId taxiId serviceStarted duration(in minutes)
1 3 2 2019-10-30 13:06:59 20
现在我想知道预计时间(服务何时结束),那么我可以使用 mysql 查询来做到这一点吗? 我想在 mysql 查询中得到类似的东西
serviceStarted + duration - currentdatetime
在mysql查询中,这可能吗?如果是的话怎么办?
最佳答案
此查询返回完成服务还剩多少时间,以小时:分钟:秒为单位:(serviceStarted + 持续时间) - currentdatetime
SELECT SEC_TO_TIME(TIMESTAMPDIFF(SECOND, NOW(), ADDTIME(serviceStarted, SEC_TO_TIME(duration*60))))
要获取剩余分钟数:
SELECT TIMESTAMPDIFF(SECOND, NOW(), ADDTIME(serviceStarted, SEC_TO_TIME(duration*60)))/60
例如,如果 serviceStarted = '2019-10-30 16:35:00' 且 NOW() = '2019-10-30 12:12:49',结果将为:
282.1833
因此 282.183/60 = 服务将在 4,703055 小时后完成。
<小时/> ADDTIME
将秒(第二个参数)添加到日期时间(第一个参数)。
`SEC_TO_TIME'从秒转换为时间。
SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01'); -> 3 SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01'); -> -1 SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55'); -> 128885
请注意,如果服务已完成,查询将返回负数。
关于php - 如何在mysql查询Php中计算时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58621096/