选择比当前日期早 x 天的记录



我正在尝试从PHP文件中的MySQL表"my_table"和列"Last_updated_time"中选择早于X天的记录。我尝试了各种组合。我的列"Last_updated时间"是 Varchar 而不是日期类型。

我的选择语句看起来像这样:

$sql = "SELECT * FROM my_table WHERE  str_to_date(Last_updated_time, '%d/%m/%Y') < DATE_SUB(NOW(), INTERVAL  X DAY) AND Place='So_and_So'  ";

我什至尝试过这个:

$sql = "SELECT * FROM my_table WHERE (Last_updated_time < NOW() - INTERVAL X DAY) AND Place=' So_and_So' "; 

我使用结果作为 JSON 发送,以便在我的 Android 文件中解析。

请帮助我。我搜索了很多。谢谢。

这应该有效:

SELECT * 
FROM my_table 
WHERE STR_TO_DATE(Last_updated_time, '%m/%d/%Y') < CURDATE() - INTERVAL X DAYS
AND Place='So_and_So'

您确定Last_updated_time的格式是日/月/年吗?如果没有,则应更改"%m/%d/%Y"部分。

对不起所有的编辑,我一直搞砸:P

最后一次编辑:

您确实应该考虑将Last_updated_time字段更改为日期类型。您可以创建一个临时列并使用类似的东西更新整个表。

UPDATE my_table 
SET `temp_updated_time` = STR_TO_DATE(Last_updated_time, '%m/%d/%Y')

之后,您可以删除旧列并将新列重命名为旧列名称。 这应该大大加快搜索速度,因为str_to_date非常慢。当然,如果需要,您还应该更改代码。如果可以的话,总是选择更快/永久的解决方案!

相关内容

  • 没有找到相关文章