php - 将文本列转换为时间

标签 php mysql sql

我有一个名为“slots”的表,其中有一列的值是时间段(例如上午 8:00、上午 9:00、上午 9:30 等)。但是这些值存储为文本。我想将它们转换为时间。我尝试了以下查询

UPDATE 'slots' SET 'slot' = STR_TO_TIME('slot', '%h:%i %p')

但是报错如下

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''slots' SET 'slot' = STR_TO_TIME('slot', '%h:%i %p')' at line 1

最佳答案

你需要使用反引号

UPDATE `slots` SET `slot` = TIME_FORMAT(TIME( STR_TO_DATE( `slot`, '%h:%i %p' ) ), '%h:%i %p' );

现在它被用作文字字符串而不是列。反引号表示列或表名而不是引号

关于php - 将文本列转换为时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27700139/

相关文章:

php - 来自表单的多维数组提交,我需要获取数据并将其插入到 mysql

mysql - 多对多关系的单个 SQL 查询

当条件不满足时,MySQL 强制 'WHERE' 显示 null

连接时 MySql WorkBench 10060 错误

c# - 插入带有 where 子句的语句 c#

sql - rails : mixing NOSQL & SQL Databases

php - 从 DIV 加载 PHP 脚本

php - 使用 updateOrInsert() 方法批量插入/更新并将数组转换为字符串

php - 获取网页打印屏幕,php/unix

sql - Postgres 执行合并中的所有子查询