我尝试使用此 sql 函数更新所有表行值:
UPDATE night
SET started_at = DATE(
STR_TO_DATE('13.05.2012 15:31:00','%d.%m.%Y %H:%i:%s')
)
但结果是2012-05-13 00:00:00
。
我正在使用 SQLyog 社区版 v8.12,我使用 MySQL 管理员 v1.2.17 托管数据库,我不知道这些软件上使用的 sql 语法是否有特定版本。
我尝试使用此 sql 函数更新所有表行值:
UPDATE night
SET started_at = DATE(
STR_TO_DATE('13.05.2012 15:31:00','%d.%m.%Y %H:%i:%s')
)
但结果是2012-05-13 00:00:00
。
我正在使用 SQLyog 社区版 v8.12,我使用 MySQL 管理员 v1.2.17 托管数据库,我不知道这些软件上使用的 sql 语法是否有特定版本。
这对我有用:
UPDATE `night` SET started_at = (SELECT STR_TO_DATE('13.05.2012 15:31:00','%d.%m.%Y %H:%i:%s'));
您正在调用DATE()
函数:
DATE(expr)
提取日期或日期时间表达式的日期部分
expr
。
因此,您表达的时间部分被删除。只需使用:
UPDATE night
SET started_at = STR_TO_DATE('13.05.2012 15:31:00','%d.%m.%Y %H:%i:%s')