我有一个 mysql 表,其中包含格式中的日期值的 varchar 字段;
“日/月/年”
我想重新排序这些字符串值,并创建一个日期时间值或时间戳,以便我可以按此列正确排序。我不是正则表达式的专家,但我认为这可能是前进的方向。
我想以以下格式结束日期表;
yyyy-mm-dd 00:00:00
我希望我应该(?)然后能够将列数据类型更改为时间戳或日期时间。
提前感谢您的帮助
您不需要正则表达式,并且可能应该避免使用处理此特定场景的开箱即用函数。
查看 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');
您不能使用 MySQL 正则表达式,因为在 MySQL 中,正则表达式只允许用于搜索。