我正在进行数据库迁移,目前有一个字符串列包含日期信息(而不是最佳的datetime字段)。是否有MySQL中可以调用的函数将此字段转换为datetime,以便我可以使用日期功能,例如在此日期之前或之后?
SELECT *
FROM mytable
WHERE CAST(mydatefield AS DATETIME) >= CAST('2009-01-01' AS DATETIME)
如果你的日期格式比较奇怪,MySQL
无法理解,可以使用STR_TO_DATE
函数:
SELECT *
FROM mytable
WHERE STR_TO_DATE(mydatefield, '%Y, %d %m') >= STR_TO_DATE('2009, 01 01', '%Y, %d %m')
当从表中检索日期时,您可以将其转换为时间戳:
SELECT *
FROM my_table
WHERE UNIX_TIMESTAMP(my_time) > UNIX_TIMESTAMP("2000-10-18 12:30:40");
UNIX_TIMESTAMP
的文档。