我正在使用MySQL表,其中包含以下条目,用于2016-12-28T21:42:53.000-04:00
字段提供的时间戳CHAR
。
我需要做的任务之一是检索当前日期的所有记录。
现在我正在做的是将当前日期转换为php
变量($date)
,其格式与MySQL
表格中的日期相同。 ie 2016-12-28
并使用LIKE
语句查找与其匹配的所有记录。
当我需要查找过去10天的所有记录时,问题出现了。
是否有将该字段转换为有效日期,我可以将其用于更复杂的查询,例如查找过去10天等等?
任何正确方向的提示都将受到赞赏, 感谢
答案 0 :(得分:4)
您只需将其转换为日期即可。一种方法是:
select date(left(field, 10))
我应该补充说,这在where
子句中也可以正常工作:
where date(left(field, 10)) >= date_sub(curdate(), interval 10 day)
但是。 。 。使用列上的函数会排除索引的使用。在这种情况下,您有一个很好的日期格式,所以你可以这样做:
where field >= date_format(date_sub(curdate(), interval 10 day), '%Y-%m-%d')
此版本可以利用field
上的索引。
所有这一切。 。 。强烈建议使用正确的类型存储字段。