如何将ORD_DATE列的char格式转换为日期?

问题描述 投票:0回答:1

我有一个名为“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,没用

mysql date-format str-to-date
1个回答
0
投票

在您的查询中,您在单引号中使用了 '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
© www.soinside.com 2019 - 2024. All rights reserved.