我在mysql中有一个列时间类型,我想在这个小时内添加24小时,我尝试下面的代码:
SELECT SUBSTRING(CAST(DATE_ADD(STR_TO_DATE('23:00', '%k:%i'), INTERVAL (TIME_TO_SEC('24:00') / 60) MINUTE) AS CHAR(8)), 1,5)
我需要再次返回23:00(因为我添加了24小时但是第二天23:00)但是这段代码还给我47:00。 一些帮助?
答案 0 :(得分:0)
我认为您正在寻找ADDTIME
SELECT ADDTIME(‘23:00’,’24:00’)
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_addtime
答案 1 :(得分:0)
您需要先将列值转换为日期时间,添加小时数,然后将结果转换回时间:
select cast(date_add(cast(time_column as datetime), interval 24 hour ) as time)
from yourtable;
示例:
select cast(date_add(cast(cast('23:00' as time) as datetime), interval 24 hour ) as time)
答案 2 :(得分:0)
TIME
类型允许您存储最多(但不包括)839小时(正面和负面)。如果您需要存储持续时间,这很好,但如果您想存储时间则不是很多。如果你想要后者,你应该考虑使用DATETIME
类型。