[英]MySQL reorder string using regexp?
我有一个mysql表,其中的varchar字段包含格式的日期值;
“日/月/年”
我想对这些字符串值重新排序,并创建一个datetime值或一个时间戳,因此我可以在此列中正确排序。 我不是正则表达式的专家,但我认为这可能是前进的方向。
我想以以下格式结尾的日期表;
yyyy-mm-dd 00:00:00
我希望可以(?)然后将列数据类型更改为时间戳或日期时间。
预先感谢您的任何帮助
您不需要正则表达式,并且应该给定处理该特定情况的现成函数,避免使用正则表达式。
STR_TO_DATE()
出MySql STR_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中正则表达式仅用于搜索。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.