mysql:如何按年份和月份之间的日期(没有日期)

时间:2015-10-19 09:56:23

标签: mysql database

如果mysql数据库中有2列:year;月,现在我想根据年月范围进行总和计算而不指定日期。让我们说2010-11至2011-07,我怎么能意识到它?

SELECT * FROM TT WHERE F1 BETWEEN '2010-11' AND '2011-07'

,它没有用。

3 个答案:

答案 0 :(得分:4)

如果您想要从2010-11到2011-07,直到8月的第一天,所有行:

SELECT * FROM `table` 
WHERE `date_column` BETWEEN '2010-11-01' AND '2011-08-01'

如果要获取1月到6月的整个月份的所有行,请使用此查询:

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)

答案 1 :(得分:2)

如果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'

答案 2 :(得分:0)

我遇到了同样的情况,并通过以下方法成功地进行了管理:

li:first-child {
  background-color: red;
  margin-left: 2rem;
}

希望它对其他人也有帮助。