Php 按日期部分选择行()

Php 按日期部分选择行(),php,mysql,sql,datepart,Php,Mysql,Sql,Datepart,我需要从数据库中获取记录为一个月的行。我尝试了以下选择: $result = mysql_query("SELECT * FROM my_table WHERE DATEPART('month', date_column)=11"); 在数据库中,有许多行的日期在11中。一个月,但我没有得到任何结果。 有人能帮我吗?谢谢! MySQL中没有函数。使用或代替。如果您有一个日期索引列,并且您担心性能,最好不要在该列上应用函数。要知道这个解决方案,不要完全按照你的要求回答,因为它也涉及到一年

我需要从数据库中获取记录为一个月的行。我尝试了以下选择:

$result = mysql_query("SELECT * FROM my_table WHERE DATEPART('month', date_column)=11");
在数据库中,有许多行的日期在11中。一个月,但我没有得到任何结果。
有人能帮我吗?谢谢!

MySQL中没有函数。使用或代替。

如果您有一个日期索引列,并且您担心性能,最好不要在该列上应用函数。要知道这个解决方案,不要完全按照你的要求回答,因为它也涉及到一年

    SELECT * FROM my_table WHERE MONTH(date_column)=11
-- For mysql specific:
SELECT * FROM my_table
WHERE date_column >= '2012-11-01' 
  and date_column < '2012-11-01' + INTERVAL 1 MONTH

如果您的DATEPART不在MYSQL中工作,则可以使用:


它将返回上个月在MyTable中插入的所有记录。

请不要使用mysql_*函数,因为这些函数在MyTable中。使用或代替and。即使使用最小的错误处理,您也会发现这不起作用的原因:$result=mysql\u query。。。或DIEU error;。永远不要假设查询成功。始终检查错误。
-- For tsql specific:
SELECT * FROM my_table
WHERE date_column >= '2012-11-01'
  and date_column < DATEADD(month,1,'2012-11-01')
SELECT * FROM MyTable WHERE MONTH(joinningDate)=MONTH(NOW())-1 and YEAR(joinningDate)=YEAR(NOW());