我正在进行数据库迁移,目前我有一个带有日期的字符串列(而不是为这些日期设置了最佳的日期时间字段)。在MySQL中有没有一个函数可以把这个字段转换成日期时间,这样我就可以使用日期特性了,比如在这个日期之前或者之后?
发布于 2009-12-16 00:00:42
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')发布于 2009-12-16 00:00:27
发布于 2009-12-16 00:00:35
从表中检索日期时,您始终可以将日期转换为时间戳:
SELECT *
FROM my_table
WHERE UNIX_TIMESTAMP(my_time) > UNIX_TIMESTAMP("2000-10-18 12:30:40");如果调用时不带参数,则将Unix时间戳(自'1970-01-01 00:00:00‘UTC以来的秒数)作为无符号整数返回。如果使用日期参数调用UNIX_TIMESTAMP(),它将返回自'1970-01-01 00:00:00‘UTC以来的秒数。日期可以是日期字符串、日期时间字符串、时间戳或格式为YYMMDD或YYYYMMDD的数字。服务器将date解释为当前时区中的值,并将其转换为UTC格式的内部值。客户端可以按照9.7节“MySQL服务器时区支持”中的说明设置自己的时区。
有关更多信息,请查看MySQL网站上的UNIX_TIMESTAMP文档。
https://stackoverflow.com/questions/1908394
复制相似问题