如何从mysql(自定义数据字段)中选择最近7天的结果?

时间:2016-07-14 10:37:56

标签: php mysql datetime datetime-format

我需要在过去7天内从mysql中选择数据。我有一个名为'date'的字段,其值为mm.dd.yy格式。 所以我试图找到特殊的mysql请求来做到这一点,但它不适用于我的领域,我猜这是因为日期格式错误。 我怎么能从PHP(使用一些变量来获取mysql条目),或使用自定义选择查询?

2 个答案:

答案 0 :(得分:3)

您可以使用STR_TO_DATE()idiosyncratic日期格式转换为标准DATE值。像这样的表达式可以解决这个问题

 STR_TO_DATE('07.17.97', '%m.%d.%y')

然后你可以说

WHERE STR_TO_DATE(`date`, '%m.%d.%y') >= CURDATE() - INTERVAL 7 DAY
在您的查询中

过滤一周前开始的date值的项目。

但是,如果要过滤很多行,那么性能会很差:这种WHERE子句不是sargable

答案 1 :(得分:0)

首先阅读你的表并更改日期格式

$new_date_format = date('Ymd',mktime(0,0,0,substr($date,0,2),substr($date,3,2),substr($date,6,2)));

之后你可以进行比较