2014-12-11 82 views
0

我是新來的PHP。 我的數據庫日期是2013-10-28。我只想搜索日期(28)。 ____-__- 28這是想要的格式。 請幫忙。如何從日期搜索?

<td style="text-align:center;"> 
    <?php 
    if ($List[$i]['mmpautono'] != "" && $List[$i]['mautono'] != "" && $List[$i]['Eudate'] == '%%-%%-08') { 
     echo "1"; 
    } else { 
     echo "0"; 
    } 
    ?> 
</td> 

確定日期是搜索日期。

+0

日期來吧database.It是ok.I只想按日期搜索該日期 「&& $列表[$ i] [ 'Eudate'] == '%-08')」 像這樣,但這不行。 – user3833805 2014-12-11 05:45:16

回答

0

使用MySQL LIKE()

SELECT * FROM tableName WHERE dateField LIKE '%-28' 

OR

OR DAYOFMONTH()

SELECT * FROM tableName WHERE DAYOFMONTH(dateField) = '28' 
+0

嗨菲爾,道歉,我只是在網上找到同樣的答案。如果你願意,我可以刪除我的答案。 – Pupil 2014-12-11 04:36:29

+1

只要沒有剽竊行爲,就可以有兩個相似的答案。不要擔心踩人的腳趾:) – cHao 2014-12-11 04:41:14

2

所以,你要搜索日期在一個月的一天是28日,是嗎?如果是這樣,嘗試

... WHERE DAYOFMONTH(dateColumn) = 28 

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_dayofmonth

。注意到,這可能是一個緩慢的查詢,你不能索引的日期函數的結果。如果速度至關重要,您可以創建另一個名爲day_of_month的列,將其索引並使用INSERT/UPDATE觸發器與DAYOFMONTH一起填充。

然後你只需要搜索

... WHERE day_of_month = 28 
+0

如果有很多行,它幾乎肯定會很慢。如果這是一個常見的查詢,那麼您可能需要添加一個僅包含月份的列作爲tinyint或其他內容,然後對其進行索引/搜索。 – cHao 2014-12-11 04:36:02

+0

@cHao我只是寫了那:) – Phil 2014-12-11 04:37:35

0

試試這個它會工作:

SELECT * FROM tableName WHERE datecolumn LIKE '%-28' 
1

您可以從數據庫中像這樣的過濾數據,然後在前端進行操作。

SELECT * FROM tableName where EXTRACT(DAY FROM columnName) = 28;