什麼是從這個MySQL查詢的不同:做出鑑別在MySQL
WHERE MONTH(date) = MONTH(CURRENT_DATE)
這
WHERE date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()
我曾經嘗試都,但我不能看到的不同。
什麼是從這個MySQL查詢的不同:做出鑑別在MySQL
WHERE MONTH(date) = MONTH(CURRENT_DATE)
這
WHERE date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()
我曾經嘗試都,但我不能看到的不同。
對於今天的CURRENT_DATE,即:23日至2010:
WHERE MONTH(date) = MONTH(CURRENT_DATE)
是date
同月,即01月和任何一年的30月之間。
WHERE date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()
是date
在過去30/31天內。如果我們在23日,這會給你一個2010年8月23日至2010年9月23日的時間間隔。
您給MONTH的日期有些誤導 - 年沒有考慮到,因此_any_九月將會匹配,而不僅僅是2010年。 – 2010-09-23 06:36:06
@martin - 你說得對,我會解決這個問題。 – eumiro 2010-09-23 06:42:31
第一個
WHERE MONTH(date) = MONTH(CURRENT_DATE)
將選擇的行,其中date
列的月份是一樣的當前月(例如,所有的行的量,date
字段的月份是九月。
第二個
WHERE date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()
將選擇date
字段介於現在和一個月前之間的行。
小心......這兩個中的第一個將無法利用您在日期欄中創建的任何索引。 – 2010-09-23 11:09:52