【发布时间】:2018-03-07 17:52:05
【问题描述】:
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 等)。
任何帮助将不胜感激!
谢谢。
【问题讨论】:
-
对 MySQL 不太熟悉,但在 MSSQL 中您不需要 SELECT 语句。只需将其设置为函数的值。
... SET endTime = DATEADD(hh,1,startTime) -
@tom 。 . .你用的是什么数据库?语法建议使用 SQL Server,但错误建议使用 MySQL。另外,为什么结束时间与开始时间在不同的表中?
-
这就是对您收到的错误的解释。
-
数据库是 MySQL。
标签: mysql sql date time dateadd