SQL:如何选择日期字段的具体月份?

时间:2013-02-20 03:39:02

标签: 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看到合格的发票。

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

3 个答案:

答案 0 :(得分:5)

另一种方法:

SELECT
    id
FROM
   invoices
WHERE
    entry_datetime between '2012/12/31' AND '2013/02/01';

如果您想获得特定月份的结果,请使用以下函数: month()as:

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

其中12是月份数

答案 1 :(得分:2)

试试这个:

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

答案 2 :(得分:0)

由于where子句中的日期没有用引号括起来,MySQL认为它是一个数学公式/等式。所以它将2012/12/31评估为5.4086。