我目前无法从数据库中获取与特定月份匹配的所有数据,并且仅显示该月份的所有数据。这是我尝试过的。
<?php
require('./connect.php');
?>
<?php
$name1 = $conn->prepare("SELECT * FROM garden WHERE MONTH(Apr)");
$name1->execute();
while($row = $name1->fetch()) {
$t = $row["temp"];
echo $t;
echo "sdasds";
}
?>
数据库有time
列,将日期存储为12-Apr-2017
,我想查找4月或月份的所有详细信息。
答案 0 :(得分:6)
您没有正确使用MONTH()
。您需要将列标识符作为参数传递,并将其值与您想要的值进行比较,即4月是第四个月时的值:
SELECT * FROM garden WHERE MONTH(STR_TO_DATE(dateColumn, '%e-%b-%Y')) = 4
如果您想要更具可读性的查询,请使用MONTHNAME()
SELECT * FROM garden WHERE MONTHNAME(STR_TO_DATE(dateColumn, '%e-%b-%Y')) = 'April'
当您将日期存储为字符串而不是日期时,您还会注意到我使用STR_TO_DATE()
。在将来,您应该考虑将日期存储为日期值,因为将它们转换为不同的格式很容易,这使得日期工作变得更加容易。
答案 1 :(得分:1)
不是将Apr作为参数,而是在4月份通过4。然后
您的查询看起来像 SELECT * FROM garden WHERE EXTRACT(MONTH FROM time)= 4;
希望这会有所帮助:)