我有一个包含日期值格式的varchar字段的mysql表;
" dd/mm/yyyy "
我想重新排序这些字符串值,并创建一个日期时间值或时间戳,所以我可以按此列正确排序。我不是正则表达式的专家,但我认为这可能是前进的方向。
我想以以下格式的日期表结束;
yyyy-mm-dd就是
我,希望我应该(?)然后能够将列数据类型更改为时间戳或日期时间。
提前感谢您的帮助
您不需要regex,并且可能应该避免使用现成的函数来处理此特定场景。
查看MySql STR_TO_DATE()
函数
接受字符串str和格式字符串format。STR_TO_DATE ()如果格式字符串同时包含date和如果字符串只包含DATE,则为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的regex,因为在MySQL中regex只允许用于搜索