繁体   English   中英

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

[英]mysql: how to do date between by year and month (no date)

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

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'

如果要获取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)

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

我遇到了同样的情况并通过这样做成功管理:

SELECT * FROM `TT` WHERE CONCAT(year_column,month_column) between '201011' and '201107';

希望它能帮助别人..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM