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