如何在' TIME'中添加小时,分钟或秒。 mysql中的数据类型

时间:2014-11-15 04:55:45

标签: mysql sql

我想在MySQL中添加TIME数据类型的小时或分钟(此处没有DATE):

create table table1(
    arrival_time TIME
);

在问题出现的情况下,23:59:59 arrival_time后,如果我加1小时,则应显示00:59:59,而不是24:59:59

我尝试了许多功能,例如addtime()date_add(),但所有功能都不符合上述要求。

1 个答案:

答案 0 :(得分:1)

select arrival_time,
       maketime(mod(HOUR(date_add(arrival_time, INTERVAL 1 HOUR)), 24),
                mod(minute(date_add(arrival_time, INTERVAL 2 MINUTE)), 60),
                mod(second(date_add(arrival_time, INTERVAL 2 SECOND)), 60)) sooner_or_later,
       TIME((ADDTIME(TIME('23:59:59'), TIME('01:02:02')))%(TIME('24:00:00'))) or_rather_so
from table1;

返回

|                   ARRIVAL_TIME |                SOONER_OR_LATER |                   OR_RATHER_SO |
|--------------------------------|--------------------------------|--------------------------------|
| January, 01 1970 23:59:59+0000 | January, 01 1970 00:01:01+0000 | January, 01 1970 01:02:01+0000 |

第二列推位。最后一栏做了正确的算术 - 借鉴ADDTIME() return 24 hour time

SQL Fiddle