mysql查询以不同的格式获取特定日期的数据

时间:2017-07-22 00:55:12

标签: php mysql date

我有一个名为event的表,有五列:event_id,Date,timing,event_type_id和capacity。

我正在尝试从表格事件中获取记录,其中日期列与格式为mm / dd / yyyy的特定日期匹配

这是我的PHP代码:

<?php


$con=mysqli_connect("localhost","root","simple","eventsdb");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

if(isset($_GET['date']))
{
$when = $_GET['date'];
}
else{ 
$when = date("d/m/Y");
}

echo $when;

$sql="SELECT Event_id, Date, Capacity FROM event where DATE('Date')='$when'";

if ($result=mysqli_query($con,$sql))
{
 // Fetch one and one row
 while ($row=mysqli_fetch_row($result))
{
printf ("%s %s %s <br>",$row[0],$row[1],$row[2]);
}
// Free result set
mysqli_free_result($result);
}

mysqli_close($con);
?>

我认为sql语句有问题,因为它会返回所有记录,即使是那些与日期值不匹配的记录

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

从上面的例子中,应该写出sql语句问题。

问题sql:

$sql="SELECT Event_id, Date, Capacity FROM event where DATE('Date')='$when'"

请转到以下内容:

$sql="SELECT Event_id, Date, Capacity FROM event where DATE(Date)='$when'"

也许它可以工作,请试试。

在你的情况下DATE('Date')将返回NULL,当返回值为NULL时,它将作为条件比较无效,类似于无查询条件或等效于1 = 1,如通过返回所有记录来提及。