如果mysql數據庫中有2列:年;月份,現在我想根據年份範圍進行總和計算,而不指定日期。比如2010-11至2011-07,我怎麼能意識到這一點?mysql:按年份和月份(無日期)如何做日期
SELECT * FROM TT WHERE F1 BETWEEN '2010-11' AND '2011-07'
,它不起作用。
如果mysql數據庫中有2列:年;月份,現在我想根據年份範圍進行總和計算,而不指定日期。比如2010-11至2011-07,我怎麼能意識到這一點?mysql:按年份和月份(無日期)如何做日期
SELECT * FROM TT WHERE F1 BETWEEN '2010-11' AND '2011-07'
,它不起作用。
如果你想利用所有行2010-11至2011-07,直到八月的第一天:
SELECT * FROM `table`
WHERE `date_column` BETWEEN '2010-11-01' AND '2011-08-01'
使用,如果你想從一月份的全月所有行此查詢到六月:
SELECT * FROM `table`
WHERE YEAR(`date_column`)=2011 AND MONTH(`date_column`) BETWEEN 1 AND 6
如果你想使用不同的年份,那麼每年編寫不同的查詢:
SELECT * FROM `table`
WHERE
(YEAR(`date_column`)=2010 AND MONTH(`date_column`) BETWEEN 11 AND 12) OR
(YEAR(`date_column`)=2011 AND MONTH(`date_column`) BETWEEN 1 AND 7)
試試這個,如果F1
是類型date
SELECT * FROM TT WHERE F1 BETWEEN '2010-11-01' AND '2011-07-31'
的,這如果F1
是類型datetime
SELECT * FROM TT WHERE F1 BETWEEN '2010-11-01 00:00:00' AND '2011-07-31 23:59:59'
,如果年份和月份保存在不同的欄目,然後用這個
SELECT * FROM TT WHERE DATE(CONCAT(year_column, '-', month_column, '-01'))
BETWEEN '2010-11-01' AND '2011-07-31'
您還需要提供每個月的第一天。 –