向 TIME 数据类型添加一个小时

Add An Hour To TIME Datatype

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 等).

如有任何帮助,我们将不胜感激!

谢谢。

在SQL服务器中,你可以这样做:

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

无论什么数据库,结束时间和开始时间table不一样,我觉得很奇怪。

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