繁体   English   中英

MySQL使用regexp重新排序字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM