MySQL使用带有日期文本的字符串列作为日期字段

jku*_*ner 2 mysql string datetime

我正在进行数据库迁移,我目前有一个包含日期的字符串列(而不是为这些设置了最佳日期时间字段).我可以在MySQL中调用一个函数将此字段转换为日期时间,以便我可以使用日期功能,例如在此日期之前或此日期之后?

Qua*_*noi 8

SELECT  *
FROM    mytable
WHERE   CAST(mydatefield AS DATETIME) >= CAST('2009-01-01' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

如果您的日期是某种MySQL不理解的奇怪格式,请使用STR_TO_DATE:

SELECT  *
FROM    mytable
WHERE   STR_TO_DATE(mydatefield, '%Y, %d %m') >= STR_TO_DATE('2009, 01 01', '%Y, %d %m')
Run Code Online (Sandbox Code Playgroud)