Php SQL:如何选择日期字段是特定月份的位置?

Php SQL:如何选择日期字段是特定月份的位置?,php,mysql,sql,date,Php,Mysql,Sql,Date,我正在尝试选择在特定月份输入的所有发票 数据库中的“entry_datetime”字段的格式为“2013-02-19 14:47:42” 我正在使用MySQL 这就是我到目前为止所做的: SELECT id FROM invoices WHERE entry_datetime > 2012/12/31 AND entry_datetime < 2013/02/01 不幸的是,它没有返回任何结果,但我可以通过phpMyAdmin看到合格的发票 请告诉我wher

我正在尝试选择在特定月份输入的所有发票

数据库中的“entry_datetime”字段的格式为“2013-02-19 14:47:42”

我正在使用MySQL

这就是我到目前为止所做的:

SELECT
    id
FROM
    invoices
WHERE
    entry_datetime > 2012/12/31 AND entry_datetime < 2013/02/01
不幸的是,它没有返回任何结果,但我可以通过phpMyAdmin看到合格的发票

请告诉我where子句有什么问题吗?

试试这个:

SELECT
    id
FROM
    invoices
WHERE
    entry_datetime > '2012/12/31' AND entry_datetime < '2013/02/01'

由于where子句中的日期没有用引号括起来,MySQL假定它是一个数学公式/方程式。因此,它将2012/12/31评估为5.4086。另一种方法是:

SELECT
    id
FROM
   invoices
WHERE
    entry_datetime between '2012/12/31' AND '2013/02/01';
如果您想获得某个月的结果,请使用以下函数: 月份为:

SELECT
    id
FROM
   invoices
WHERE
   MONTH(entry_datetime)=12;

其中12是月数

谢谢,但我已经按照建议修改了代码,它仍然没有选择带有“2013-01-19 14:49:38”条目的发票,您确定吗?该查询将获取2012年12月31日至2013年2月1日之间的数据。我直接从phpMyadmin复制并粘贴了条目_datetime 2013-01-19 14:49:38。我怀疑这可能是时间部分导致此失败?抱歉,我选择的字段中存在问题。我使用的是加密,所以很难看到原始数据,我在这里展示的查询也被简化了。谢谢你的方法奏效了。