在MySQL中只获取今天的记录时遇到问题



我有一个用这些类型设置的表列:

Date_Time datetime PKppm2 intppm10 intaqi int

我使用的查询是

SELECT * FROM aqi_data where Date_Time = CURDATE()

这返回0条记录

<?php $chartQuery = "SELECT * FROM aqi_data where Date_Time = CURDATE()"; 
$chartQueryRecords = mysqli_query($con, $chartQuery); 
while($row = mysqli_fetch_assoc($chartQueryRecords)){ 
echo "'".$row['Date_Time']."',".$row['aqi']. 
",".$row['ppm2'].",".$row['ppm10']."],"; 
} ?>

有人能帮我吗?

您已经存储了DateTime,并且正在与date进行比较。一种方法是将数据转换为日期

<?php 
$chartQuery = "SELECT * FROM aqi_data where CAST(Date_Time AS DATE) = CURDATE()"; 
$chartQueryRecords = mysqli_query($con, $chartQuery); 
while($row = mysqli_fetch_assoc($chartQueryRecords)){ 
echo "'".$row['Date_Time']."',".$row['aqi']. 
",".$row['ppm2'].",".$row['ppm10']."],"; 
} ?>

另一种更快的方法是将Date_Time与CURDATECURDATE+1DAY之间的范围进行比较。

"SELECT * FROM aqi_data where Date_Time >= CURDATE() and Date_Time < CURDATE()+1";

未测试

相关内容

最新更新