我想在MySQL中以TIME数据类型添加小时或分钟(此处没有DATE):
create table table1(
arrival_time TIME
);
在这种情况下,问题是,在arrival_time
23:59:59
后,如果我加上 1 小时,它应该显示00:59:59
,而不是24:59:59
。
我已经尝试了许多功能,例如addtime()
,date_add()
等等,但不符合上述要求。
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() 返回 24 小时时间
SQL 小提琴