我有一个名为'slots'的表,其中一列的值为时段(如上午8:00,上午9:00,上午9:30等等)。但这些值存储为文本。我想把它们转换成时间。我尝试了以下查询
UPDATE 'slots' SET 'slot' = STR_TO_TIME('slot', '%h:%i %p')
但是它出现了以下错误
#1064 - 您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行''slots'SET'lot'附近'= STR_TO_TIME('slot','%h:%i%p')'
答案 0 :(得分:1)
你需要使用后退滴答
UPDATE `slots` SET `slot` = TIME_FORMAT(TIME( STR_TO_DATE( `slot`, '%h:%i %p' ) ), '%h:%i %p' );
现在它被用作文字字符串而不是列。 back ticks表示列或表名不引用标记