1

我尝试使用此 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 语法是否有特定版本。

4

2 回答 2

0

这对我有用:

UPDATE `night` SET started_at = (SELECT STR_TO_DATE('13.05.2012 15:31:00','%d.%m.%Y %H:%i:%s')); 
于 2014-11-08T10:42:13.357 回答
0

您正在调用DATE()函数:

DATE(expr)

提取日期或日期时间表达式的日期部分expr

因此,您表达的时间部分被删除。只需使用:

UPDATE night
SET started_at = STR_TO_DATE('13.05.2012 15:31:00','%d.%m.%Y %H:%i:%s')
于 2014-11-08T10:44:42.767 回答