我想在MySQL中添加TIME数据类型的小时或分钟(此处没有DATE):
create table table1(
arrival_time TIME
);
在问题出现的情况下,23:59:59
arrival_time
后,如果我加1小时,则应显示00:59:59
,而不是24:59:59
。
我尝试了许多功能,例如addtime()
,date_add()
,但所有功能都不符合上述要求。
答案 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