向 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)
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)