2014-12-11 85 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;