我有一个名为“neworders”的表,其中有一列“ORD_DATE”,值为 15-Aug-08 模式是 CHAR。我想将格式转换为日期格式,但一直遇到错误 - “不正确的日期时间值”
更新新订单集 ORD_DATE = str_to_date('ORD_DATE', "%e %m %y");
SELECT date_format('ORD_DATE', "%e %m %y");
也试过date_format,没用
在您的查询中,您在单引号中使用了 'ORD_DATE' - 这是一个问题。您必须引用该列的值,而不是固定的
ORD_DATE
字符串。 ORD_DATE
本身不是约会。
此外,日期存储在表中的格式中有连字符,而您在 UPDATE 查询中的格式没有连字符。 此外,
%M
(大写 M)用于月份名称,%m
用于数字月份。
这是您约会的工作样本:
CREATE TABLE `tbl` (
`ord_date` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`ord_date_new` date DEFAULT NULL
) ENGINE=InnoDB;
INSERT INTO `test`.`tbl` (`ord_date`) VALUES ('15-Aug-08');
SELECT * FROM tbl;
ord_date ord_date_new
--------- --------------
15-Aug-08 (NULL)
UPDATE tbl SET ord_date_new = STR_TO_DATE(ord_date, '%e-%M-%y');
1 row affected
SELECT * FROM tbl;
ord_date ord_date_new
--------- --------------
15-Aug-08 2008-08-15