2014-11-15 87 views
0

我想在MySQL中添加小时或分钟时间数据类型(在这里没有DATE):如何添加小时,分钟或秒“时间”数据类型在MySQL

create table table1(
    arrival_time TIME 
); 

这里是其中的情况下问题是23:59:59arrival_time之后,如果我加1小时,应该显示00:59:59,而不是24:59:59

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

+0

借这可能有助于http://www.w3schools.com/sql/func_date_format.asp –

+0

按手动dev.mysql.com/doc/refman/ 5.0/en/time.html TIME的有效范围是从'-838:59:59'到'838:59:59'。显示24:59:59即使它不是你想要的,也能正常工作。 – DaveCoast

回答

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

+0

非常感谢... – Nicky

相关问题