如何将文本列转换为日期时间MYSQL



我有一个脚本,每五分钟更新MySql服务器中表的值。问题是,在一个名为"日期"的列中,我有一个文本中的日期和时间。像这样:

Date
24/04/2021 08:22:01
24/04/2021 08:22:02
24/04/2021 08:22:03
...

我希望能够将其转换为日期时间,这样我就可以管理最大或最小日期。我看过很多关于这方面的话题,但它们都在SQL中,而不是MySql。

CREATE TABLE test (`Date` VARCHAR(255));
INSERT INTO test VALUES
('24/04/2021 08:22:01'),
('24/04/2021 08:22:02'),
('24/04/2021 08:22:03');
SELECT * FROM test;
|日期||:------------------||2021年4月24日08:22:01||2021年4月24日08:22:02||2021年4月24日08:22:03 |
<blockquote\
-- variant 1 - transform in a query
SELECT `date`, STR_TO_DATE(`date`, '%d/%c/%Y %H:%i:%s') formatted_date
FROM test;
>
date|formatted_date:------------------|:------------------2021年4月24日08:22:01 | 2021-04-24 08:22:012021年4月24日08:22:02 | 2021-04-24 08:22:022021年4月24日08:22:03 | 2021-04-24 08:22:03
-- variant 2 - create generated column
ALTER TABLE test 
ADD COLUMN formatted_date DATETIME AS (STR_TO_DATE(`date`, '%d/%c/%Y %H:%i:%s')) STORED;
SELECT * FROM test;
Date|formatted_Date:------------------|:------------------2021年4月24日08:22:01 | 2021-04-24 08:22:012021年4月24日08:22:02 | 2021-04-24 08:22:022021年4月24日08:22:03 | 2021-04-24 08:22:03

db<gt;小提琴这里

最新更新