我有一个 mysql 表,其中包含格式为日期值的 varchar 字段;
“日/月/年”
我想重新排序这些字符串值,并创建日期时间值或时间戳,这样我就可以按此列正确排序。我不是正则表达式方面的专家,但我认为这可能是前进的方向。
我想以下列格式结束日期表;
yyyy-mm-dd 00:00:00
我希望我应该(?)然后能够将列数据类型更改为时间戳或日期时间。
在此先感谢您的帮助
最佳答案
为此您不需要正则表达式,考虑到处理此特定场景的开箱即用函数,您应该避免使用它。
查看 MySql STR_TO_DATE()
function .
It takes a string str and a format string format. STR_TO_DATE() returns a DATETIME value if the format string contains both date and time parts, or a DATE or TIME value if the string contains only date or time parts.
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 使用正则表达式重新排序字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521378/