我是想选择数据库中在一天内的数据,时间字段“uptime”的格式是“2021-03-26 18:06

我是想选择数据库中在一天内的数据,时间字段“uptime”的格式是“2021-03-26 18:06:32” 我写成下面这个,但是行不通 $NowTime = date('Y-m-d h:i:s',strtotime('-1 day')) $sql = 'SELECT * FROM DcData WHERE uptime > $NowTime';

你这是什么数据库,用的什么语言?

如下:

select * from DcData 
where uptime > DATE_SUB(now(), INTERVAL 1 DAY);

再看看这个,这样也不行吗?

$sql = 'SELECT * FROM DcData WHERE uptime > DATE_SUB(now(), INTERVAL 1 DAY)';

 

//如果前台提交的请求数据为一天,则执行以下代码
if ($RQtime == 'oneData')
    {
        //echo "你对时间的需求为:".$RQtime;

        //$NowTime = strtotime(date('Y-m-d h:i:s',strtotime('-1 day')));
        //echo "下面需要用到的时间需求是:".$NowTime;

        //$sql = 'SELECT * FROM DcData WHERE uptime >= .$NowTime.';   //最初的代码
        //$sql = 'SELECT * FROM DcData WHERE now() < DATE_SUB(uptime, INTERVAL -1 DAY)';  //大哥提供的方法,但是不知道为啥和我一开始的一样运行不了

        $sql = 'SELECT * FROM DcData WHERE TO_DAYS(NOW()) - TO_DAYS(uptime) <= 1';
        //echo "你输入的需求为:".$sql;
        //执行查询语句,返回result为数据内容
        if($result = mysqli_query($conn,$sql))
        {

            //得到查询的记录的个数,
            $rowcount = mysqli_num_rows($result);
            //echo "return {$rowcount} records <br>";


            for($i = 0;$i <$rowcount;$i ++)
            {

                //按顺序一次读取一条记录,保存到sqldata中

                $sqldata = mysqli_fetch_assoc($result);


                echo

                "<center>

                <table>

                <tr>

                    <td>".$sqldata['thname']."</td>

                    <td>".$sqldata['conf']."</td>

                    <td>".$sqldata['bndbox']. "</td>

                    <td>".$sqldata['uptime']. "</td>


                </tr>

                </table>

                </center>";

            }

            mysqli_free_result($result);

        }

    }