如果mysql数据库中有两列: year;month,那么现在我想要基于年-月范围进行求和计算,而不指定日期。比方说2010-11到2011-07,我该如何实现呢?
SELECT * FROM TT WHERE F1 BETWEEN '2010-11' AND '2011-07',它不工作。
发布于 2015-10-19 18:04:13
如果您想要从2010-11到2011-07的所有行,直到8月1日:
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)发布于 2015-10-19 18:05:47
如果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'发布于 2019-06-02 19:59:16
我遇到了同样的情况,并通过这样做成功地管理:
SELECT * FROM `TT` WHERE CONCAT(year_column,month_column) between '201011' and '201107';希望它也能帮助其他人..
https://stackoverflow.com/questions/33211526
复制相似问题