mysql - 提取 hh :mm:ss from TIMESTAMPDIFF (time, Current_Time())

标签 mysql sql datetime

CREATE TABLE Test (

id int primary key,
Present varchar(10),
Date date,
Time time
);

INSERT INTO Test (id, Present, Date, Time)
Values (1, 'Present', '2018-07-18', '10:13:55' ),
(2, 'Present', '2018-07-18', '10:10:55' );

查询:

SELECT 
id,
Present,
Date,
Time,
TIMESTAMPDIFF(MINUTE, time, CURRENT_TIMESTAMP())
FROM Test

结果:

| id | Present |       Date |     Time | TimeDifference |
|----|---------|------------|----------|----------------|
|  1 | Present | 2018-07-18 | 10:13:55 |           -127 |
|  2 | Present | 2018-07-18 | 10:10:55 |           -124 |

我希望将时间差显示为 hh:mm:ss 而不仅仅是分钟。我试过:

SEC_TO_TIME(TIMESTAMPDIFF(SECOND, time, CURRENT_TIMESTAMP())) AS TimeDifference 

但这给了我错误:“第 5 列中时间 '-02:03:10' 的格式错误”

如何从 TIMESTAMPDIFF 函数中提取此信息?我在网上到处找,但找不到任何东西。

最佳答案

在时间和CURRENT_TIMESTAMP之间切换,你会得到一个正数

将单位时间更改为秒,然后将差秒转换为时间。

The SEC_TO_TIME() function converts numeric seconds into a time value (in format HH:MM:SS).

SELECT 
id,
Present,
Date,
Time,
SEC_TO_TIME(TIMESTAMPDIFF(SECOND,CURRENT_TIMESTAMP(),time))
FROM Test

关于mysql - 提取 hh :mm:ss from TIMESTAMPDIFF (time, Current_Time()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417604/

相关文章:

PHP 显示来自 MySQL 的图像 BLOB

mysql - 使用 SELECT 查询的字符串放入 IN () 条件

sql - Grails仪表板说我没有服务

sql - 如何在不安装 SQL Server 2005 的情况下测试语法

sql-server - SQL Server - 日期字符串

python - 相隔 >292 年的日期差值

php - 显示列与给定参数部分匹配的行

mysql - 如何在不同列中显示一个表的mysql计数结果?

sql - MSSQL - 如何根据最大 ID 选择多个列

python - pandas to_datetime 函数问题