使用MySQL操纵字符串作为日期?

时间:2016-12-29 03:06:34

标签: php mysql date

我正在使用MySQL表,其中包含以下条目,用于2016-12-28T21:42:53.000-04:00字段提供的时间戳CHAR。 我需要做的任务之一是检索当前日期的所有记录。

现在我正在做的是将当前日期转换为php变量($date),其格式与MySQL表格中的日期相同。 ie 2016-12-28并使用LIKE语句查找与其匹配的所有记录。

当我需要查找过去10天的所有记录时,问题出现了。

是否有将该字段转换为有效日期,我可以将其用于更复杂的查询,例如查找过去10天等等?

任何正确方向的提示都将受到赞赏, 感谢

1 个答案:

答案 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上的索引。

所有这一切。 。 。强烈建议使用正确的类型存储字段。