php - 如何在mysql查询Php中计算时间

标签 php mysql

我在数据库名称“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'从秒转换为时间。

TIMESTAMPDIFF示例:

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/

相关文章:

java - 正则表达式包含一个或多个电话号码

mysql - 批量更新 WordPress post slug 并通过 SQL 查询重定向到新的 slug

javascript - 在 Javascript 中通过 GET 获取 div id

java.net.ConnectException 消息 : Connection timed out: connect

mysql - 将一列中的字符串拆分为同一表中的三列并插入到新表中

MySQL InnoDB 哈希索引优化

mysql - 错误 : #1146 - Table 'information_schema.CHARACTER_SETS' doesn't exist

php - 为什么 $_SERVER ["SERVER_PROTOCOL"] 在客户端使用 HTTP/1.1 时显示 HTTP/1.0

php - 将 json 数据输入智能建议插件

php filemtime 24 小时格式