我收到的报告中有几个字段设置为m / d / y hh:mm(所以是一个数字月份的一位数字)。我将来不会导入这些,所以我宁愿不依赖于更改输入文件。 mysql如何适应这种格式,以便我可以进行日期查询和基于时间的查询?
示例:
表a -
EMPID
lastlogin
如何使用lastlogin字段作为上述日期字段搜索本月登录的员工?
答案 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;
但是,您不应将日期作为字符串存储在数据库中。将它们存储为实际date
或datetime
字段是一个更好的主意。在加载数据时,您可以进行一次转换,然后不必担心数据。