将字段转换为日期给出日期时间值

Converting fields to date gives datetime values

上下文:

MariaDB 5.5.68.

我必须将包含日期的 VARCHAR 字段转换为常规格式的日期(如 DATE Format from MariaDb Documentation)。

以下是我的处理方式:

ALTER TABLE MYTABLE
ADD FORMATED_DATE DATE;

UPDATE MYTABLE
SET FORMATED_DATE = UNFORMATED_DATE ;

SELECT FORMATED_DATE, UNFORMATED_DATE  
FROM MYTABLE

转换正常,但根据文档,FORMATED_DATE 字段对我来说更像是 DATETIME 而不是 DATE。这是否正常,因为我不想在应用程序中使用此字段处理这些日期的时间部分。

首先有两个日期列是没有意义的,因为它们显示相同的内容。

只有当您 select 数据并且您 将其保存在数据库中时,您才格式化日期。

原始数据仍然可以使用 date/time 函数,而第一个没有。

您可以使用DATE_FORMAT获取您想要和需要的任何格式的almoszt,所以请使用它并且不要在您的数据库中保存冗余数据

CREATE tABLe mytable (mydate date)
INSERT INTO mytable VALUES('2019-01-28')
SELECT DATE_FORMAT(mydate,'%d/%m/%Y') FROM mytable
| DATE_FORMAT(mydate,'%d/%m/%Y') |
| :----------------------------- |
| 28/01/2019                     |

db<>fiddle here

你试过吗?

ALTER TABLE MYTABLE
ADD FORMATED_DATE DATE;

UPDATE MYTABLE
SET FORMATED_DATE = DATE_FORMAT(UNFORMATED_DATE, '%d/%m/%Y')

SELECT FORMATED_DATE, UNFORMATED_DATE  
FROM MYTABLE