繁体   English   中英

PHP从之前的24小时sql数据库中选择数据

[英]PHP select data from previous 24 hours sql database

我使用下面的脚本从前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转换为DATE ,而不是将CURDATE()转换为字符串。 您可以为此使用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')

您也可以使用原始查询,但只使用=而不是>= 您只需要当前日期的行,而不是将来的行。

如果在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
      }
   }
}

希望这对您有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM