你如何处理mysql中的非标准日期格式?

时间:2014-01-30 22:01:25

标签: mysql date

我收到的报告中有几个字段设置为m / d / y hh:mm(所以是一个数字月份的一位数字)。我将来不会导入这些,所以我宁愿不依赖于更改输入文件。 mysql如何适应这种格式,以便我可以进行日期查询和基于时间的查询?

示例:

表a -

EMPID

lastlogin

如何使用lastlogin字段作为上述日期字段搜索本月登录的员工?

1 个答案:

答案 0 :(得分:1)

MySQL函数str_to_date()非常灵活。虽然它似乎更喜欢MM / DD / YYYY格式,但它确实适用于M / D / YYYY。

所以你可以这样做:

select a.*
from a
where str_to_date(lastlogin, '%m/%d/%Y') >= now() - interval 30 days;

但是,您不应将日期作为字符串存储在数据库中。将它们存储为实际datedatetime字段是一个更好的主意。在加载数据时,您可以进行一次转换,然后不必担心数据。

相关问题