我正在使用下面的脚本从前 24 小时中提取数据并将其输出到一个 html 表中,它在 8 月的整个月都有效,但自从月份更改为 9 月后就搞砸了,现在显示第一个数据入口..
我的“时间戳”列是 varchar + 主键,格式如下:04/09/2014 01:33:59
这是脚本:
$sql = "SELECT *
FROM my_table
WHERE Timestamp >= DATE_FORMAT(CURDATE(), '%d/%m/%Y')
ORDER BY Timestamp ";
这个脚本有什么问题?我只想让它提取过去 24 小时内的所有数据,仅此而已,提前致谢!
最佳答案
不应将 CURDATE()
转换为字符串,而应将 Timestamp
转换为 DATE
。您可以使用 STR_TO_DATE
为此。
WHERE STR_TO_DATE(Timestamp, '%d/%m/%Y %H:%i:%s') >= CURDATE()
ORDER BY STR_TO_DATE(Timestamp, '%d/%m/%Y %H:%i:%s')
您也可以使用原始查询,但只需使用 =
而不是 >=
。您只需要当前日期的行,而不是 future 的行。
关于PHP 从前 24 小时 sql 数据库中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655655/