2012-12-14 273 views
1

内的所有记录。当我试图选择特定的月份和年份的记录,当我搜索我发现半个解决方案选择年份和月份

mysql: select all entries from a particular month using PHP

select * 
from thetable 
where monthname(date_field) = 'February' 

然后我修改以下

select * 
from payments 
where monthname(date) = 'February' and EXTRACT(date)='2011'; 

但它显示错误什么是正确的方式来选择mounth和 在我的表中我的商店日期为2011-2-4

+0

继从你链接到的问题开始,你能不能使用'year()'方法吗? – SeeSharp

+0

是'DATE'数据类型或'VARCHAR'的'日期'列吗? –

回答

1

看来你列不在一个Date数据类型,所以你能做的最好的方法是将其使用STR_TO_DATE

SELECT * 
FROM Payments 
WHERE MONTHNAME(STR_TO_DATE(date,'%Y-%c-%e')) = 'FEBRUARY' AND 
     YEAR(STR_TO_DATE(date,'%Y-%c-%e')) = 2011 
+0

错误1305(42000):功能ruhuna.STR_TODATE不存在来 – master3w

+1

对不起,应该是'STR_TO_DATE' –

1

试试这个先转换为DATE

select * from payments p 
where year(p.date) = 2011 and monthname(p.date) = 'February' 
+0

谢谢你的代码也适合我 – master3w