我使用下面的脚本从之前的24小时提取数据并在html表格中吐出来,它在整个8月份工作但随后因为月份变为9月而搞砸了,现在显示所有数据条目..
我的'Timestamp'列是varchar +主键,格式如下:04/09/2014 01:33:59
这是剧本:
$sql = "SELECT *
FROM my_table
WHERE Timestamp >= DATE_FORMAT(CURDATE(), '%d/%m/%Y')
ORDER BY Timestamp ";
这个脚本有什么问题?我只是希望它能够提取过去24小时内的所有数据,这就是提前感谢!
答案 0 :(得分:1)
您应该将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')
您也可以使用原始查询,但只需使用=
代替>=
。您只需要当前日期的行,而不是将来的行。
答案 1 :(得分:0)
如果在PHP中,我使用diff
$sql = "SELECT timestamp from yourtable";
$now = new DateTime();
if($r = mysql_query($sql))
{
while($row = mysql_fetch_array($r))
{
$dt = date("Y-m-d H:i:s",strtotime($row['timestamp']));
$dates = new DateTime($dt);
$datedif = $now->diff($dates)->format("%d");
if($datedif >= 1)
{
Your events
}
}
}
希望这有助于你