簡體   English   中英

如何從mysql數據庫中找到與特定月份匹配的所有數據?

[英]How to find all the data that match a particular month from mysql database?

我目前在從數據庫中獲取與特定月份匹配的所有數據並僅顯示該月份的所有數據時遇到問題。 這是我嘗試過的。

<?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月或5月的所有詳細信息。

您沒有正確使用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() 將來,您應該考慮將日期存儲為日期值,因為將日期轉換為其他格式很容易,並且使日期工作變得更加容易。

而不是提供Apr作為參數,而是在4月份傳遞4。 然后

您的查詢看起來像SELECT * FROM garden WHERE EXTRACT(MONTH FROM time)= 4;

希望這可以幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM