MySQL中两个时间字段的分钟差异

Nei*_*ilG 29 mysql time

我用'time'字段设置我的MySQL数据库

在传统意义上,它不是HH:MM,它是事件发生的时间,因此在游戏中还剩5分45秒时发生值为5:45的事件.12:25发生了12分25秒,等等.

我希望能够找出经过的总时间,所以如果我有一个事件发生在12:25而下一个事件发生在5:45我希望能够得到差异,这将等于6:40.然后,我想将其表示为小数,在本例中为6.67.

这可能吗?

提前致谢.

小智 31

只是用

TIMEDIFF(fromtime, totime):

SELECT TIMEDIFF("12:25", "5:45");
Run Code Online (Sandbox Code Playgroud)

如果你需要一个十进制,使用TIME_TO_SEC()/3600(它假设你传递了几秒钟,但你存储时间的格式是模糊的,SQL可能会将它们解释为HH:MM - 你可以解决这个问题CONCAT("00:",MinuteSecondField)吗?) - 那么你可以使用TIME_TO_SEC()/60,这更正确)


art*_*bot 18

我需要类似的.两个有用的功能:TIME_TO_SECSUBTIME.

例如,如果你的时间字段是正常的HH:MM倍,那么

SELECT (TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time))/60 AS `minutes` 
Run Code Online (Sandbox Code Playgroud)

在你的情况下,据我所知,时间是倒退的,即.12:00<6:00所以你的end_time和start_time需要交换.

如果你想用HH:MM:SS输出你可以做到的

SELECT SUBTIME(end_time, start_time)
Run Code Online (Sandbox Code Playgroud)