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