2009-09-14 52 views
1

我該如何去做一個查詢,該查詢返回查詢時當前年份和月份的所有行的結果。mysql返回匹配年份月份的行

時間戳的每一行被格式化爲這樣:YYYY-MM-DD

我知道它可能有一些做的日期功能,我必須以某種方式設置一個特殊的參數,使其吐出像這樣:yyyy-mm - %%。

將天設置爲通配符會做到這一點,但我似乎無法弄清楚如何去做。

這是MySQL中的鏈接,以供快速參考日期時間函數:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

感謝

回答

12

我想提取物是你正在尋找的功能:

SELECT * FROM table 
WHERE EXTRACT(YEAR_MONTH FROM timestamp_field) = EXTRACT(YEAR_MONTH FROM NOW()) 
+0

啊,你看我的腦海裏。這正是我需要的!謝謝埃裏克。 – payling 2009-09-14 17:04:32

+0

我也是....很好的傢伙。它對我有好處。節省了很多時間。 – 2014-11-11 21:39:22

+0

之前未使用過提取物,添加到片段,歡呼聲中。 – 2015-01-19 16:37:40

5

您可以使用函數提取年份和月份,但無法使用索引。

,如果你想擴展的性能,你需要做的是:

SELECT * 
    FROM myTable 
WHERE some_date_column BETWEEN '2009-01-01' AND '2009-01-31' 
+0

+1 - 我給出的解決方案解決了這個問題,但如果您有大量數據,可能無法很好地擴展。 – 2009-09-14 17:27:32

+0

這個答案仍然有幫助! – 2015-01-19 16:36:05

1
select * from someTable where year(myDt) = 2009 and month(myDt) = 9 and day(myDt) = 12