2013-02-20 80 views
0

我試圖選擇在特定月份中輸入的所有發票。SQL:如何選擇日期字段是特定的月份?

數據庫中的'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子句有什麼問題嗎?

回答

2

試試這個:

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

謝謝,但我修改了我的代碼建議,它仍然沒有選擇entry_datetime'2013-01-19 14:49:38' – 2013-02-20 04:36:15

+1

你確定嗎?該查詢將抓取2012年12月31日至2013年2月1日之間的數據 – 2013-02-20 04:38:48

+0

我直接從phpMyadmin複製並粘貼了entry_datetime(2013-01-19 14:49:38)。我懷疑這是可能導致此失敗的時間部分? – 2013-02-20 04:54:50

0

由於在where子句中不加括號,MySQL假設這是一個數學公式/方程的日期。所以它將2012/12/31評估爲5.4086。

5

另一種方式來做到這一點:

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個月mumber

相關問題