添加一小时到TIME数据类型

时间:2018-03-07 17:52:05

标签: mysql sql date time dateadd

UPDATE Game
SET endTime = (SELECT DATEADD(hh, 1, startTime)
FROM GameInfo
WHERE Game.idGame = GameInfo.idGame);

我想将endTime的小时数设置为比startTime晚1小时,当我运行此代码时出现错误:

ERROR 1728 (HY000): Cannot load from mysql.proc. The table is probably corrupted

我相信这是因为startTime和endTime字段都是数据类型TIME,但我似乎无法为TIME数据类型找到类似的函数?

UPDATE Game
SET endTime = (SELECT HOUR(startTime)+1
FROM GameInfo
WHERE Game.idGame = GameInfo.idGame);

几乎可以工作,因为它会增加小时数,但是它会将只是小时数保存为一个数字(导致所有条目的00:00:19等)。

非常感谢任何帮助!

感谢。

2 个答案:

答案 0 :(得分:1)

您要找的是:DATE_ADD(startTime, INTERVAL 1 HOUR)

答案 1 :(得分:0)

在SQL Server中,您可以执行以下操作:

UPDATE g
    SET endTime = DATEADD(hour, 1, gi.startTime)
FROM Game g JOIN
     GameInfo gi
     ON g.idGame = gi.idGame;

无论数据库如何,我都觉得奇怪的是结束时间与开始时间不同。