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

标签 mysql regex timestamp

我有一个 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/

相关文章:

java - java jpa生成值异常

mysql - 在插入触发器后将数据插入其他表

php - Codeigniter DB 查询链接先前调用中的错误数据

javascript - 在任何地方替换字符串,除非它在引号内

sql - SELECT查询中的SQLite时间

php - 使用单选按钮增加 MySql 数据库中的值

regex - Perl正则表达式如何只转义一些字符

c# - 使用正则表达式 C# 获取包含特定单词的整行

javascript - 将日期和时间转换为 Unix 时间戳

javascript - Moment JS - UTC 与本地时间戳比较失败