如何从mysql数据库中查找与特定月份匹配的所有数据?

rah*_*oor 0 php mysql

我目前无法从数据库中获取与特定月份匹配的所有数据,并且仅显示该月份的所有数据.这是我试过的.

<?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";
    }
    ?>
Run Code Online (Sandbox Code Playgroud)

数据库中包含time存储日期的列,12-Apr-2017我想查找月份或月份的所有详细信息.

Joh*_*nde 6

你没有MONTH()正确使用.您需要将列标识符作为参数传递,并将其值与您想要的值进行比较,即4月是第四个月时的值:

SELECT * FROM garden WHERE MONTH(STR_TO_DATE(dateColumn, '%e-%b-%Y')) = 4
Run Code Online (Sandbox Code Playgroud)

如果您想要更可读的查询使用 MONTHNAME()

SELECT * FROM garden WHERE MONTHNAME(STR_TO_DATE(dateColumn, '%e-%b-%Y')) = 'April'
Run Code Online (Sandbox Code Playgroud)

您还会注意到我STR_TO_DATE()在您将日期存储为字符串而不是日期时使用.在将来,您应该考虑将日期存储为日期值,因为将它们转换为不同的格式很容易,这使得日期工作变得更加容易.