【发布时间】:2014-09-04 00:36:29
【问题描述】:
我使用下面的脚本从前 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 小时内的所有数据,仅此而已,在此先感谢!
【问题讨论】:
-
您为什么不对 Timestamp 列使用
DATETIME数据类型?这种格式的日期不容易比较。 -
如果要将其存储为 VARCHAR,则应使用
YYYY-MM-DD,而不是DD/MM/YYYY。 -
在黑暗中拍摄,但
WHERE Timestamp LIKE DATE_FORMAT(CURDATE(), '%d/%m/%Y')会起作用吗?而不是在得到所有匹配后得到任何东西。我什至不确定这是有效的 sql -
Barmar,因为我需要它以 DD/MM/YYYY 的格式显示,所以它是爱尔兰的标准格式......我们发现它更容易阅读并且看起来更整洁 :)
-
向用户显示时应该使用格式化函数,它不应该影响你在数据库中的存储方式。
标签: php html mysql sql datetime