2015-03-19 64 views

回答

5

你必須用下面這樣的查詢

$sql = "SELECT * FROM table WHERE month(date_format($date, 'm/d/Y')) = EXTRACT(month FROM (NOW()))"; 
$result = query($sql); 
while ($row = mysql_fetch_assoc($result)) { 
echo $row['fieldname'];} 
2

您不應該將日期存儲爲varchar字符串,它應該與mysql的本機數據類型之一一起存儲。

然而,在你的情況,你可以做一些事情作爲

select * from table_name 
where 
month(str_to_date(date_col,'%m/%d/%Y')) = month(curdate()) 
+0

我正在日期格式「2015年3月20日」,並保存它。那麼你能解釋一下如何將這個日期格式轉換爲mysql本地日期類型,以便我使用正確的方式來解決問題? – Deepesh 2015-03-19 11:34:13

+0

原生的mysql數據類型是'date','datetime','timestamp',日期格式是'Ymd',所以你可以在其中一個表中創建一個新的col,然後運行update table_name set new_col_created = str_to_date(date_col,'%m /%d /%Y')',然後刪除現有日期列並將新列重命名爲舊名稱。然後在查詢中你不需要'str_to_date',你可以直接使用'month(date_col)',也可以確保在插入時以'Y-m-d'格式插入DB – 2015-03-19 11:38:48

3

例如,您將日期保存在表的date_entered列中。因此,要獲取date_entered當前月份的所有記錄,可以使用下面的SQL Query。 (SELECT)* FROM MONTH(date_entered)= MONTH(CURDATE())「;

相關問題