MySQL使用正则表达式重新排序字符串?

时间:2013-05-13 11:50:44

标签: mysql regex timestamp

我有一个mysql表,其varchar字段包含格式的日期值;

"日/月/年"

我想重新排序这些字符串值,并创建一个日期时间值或时间戳,因此我可以通过此列正确排序。我不是正则表达式的专家,但我认为这可能是前进的方向。

我想以下列格式结束日期表;

yyyy-mm-dd 00:00:00

我希望我能(?)然后能够将列数据类型更改为时间戳或日期时间。

提前感谢您提供任何帮助

2 个答案:

答案 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中只允许使用正则表达式进行搜索。