1

我有一个 mysql 表,其中包含格式中的日期值的 varchar 字段;

“日/月/年”

我想重新排序这些字符串值,并创建一个日期时间值或时间戳,以便我可以按此列正确排序。我不是正则表达式的专家,但我认为这可能是前进的方向。

我想以以下格式结束日期表;

yyyy-mm-dd 00:00:00

我希望我应该(?)然后能够将列数据类型更改为时间戳或日期时间。

提前感谢您的帮助

4

2 回答 2

2

您不需要正则表达式,并且可能应该避免使用处理此特定场景的开箱即用函数。

查看 MySqlSTR_TO_DATE()函数

它需要一个字符串 str 和一个格式字符串格式。如果格式字符串同时包含日期和时间部分,则 STR_TO_DATE() 返回 DATETIME 值;如果字符串仅包含日期或时间部分,则返回 DATE 或 TIME 值。

SELECT STR_TO_DATE('31/4/2004', '%m/%d/%Y');

回报:

 '2004-04-31'

要强制使用 DATETIME,您可以将时间字符串连接到字段日期字符串的末尾,例如:

SELECT STR_TO_DATE(CONCAT(myDateColumn, ' ', '00:00:00'), '%m/%d/%Y %h:%i:%s');
于 2013-05-13T11:58:30.980 回答
-1

您不能使用 MySQL 正则表达式,因为在 MySQL 中,正则表达式只允许用于搜索。

于 2013-05-13T12:54:36.857 回答