mysql:如何在年和月之间创建日期(无日期)
如果mysql数据库中有2列:年;月份,现在我想基于年-月范围进行总和计算,而不指定日期。比如说2010-11年到2011-07年,我怎样才能实现它mysql:如何在年和月之间创建日期(无日期),mysql,database,Mysql,Database,如果mysql数据库中有2列:年;月份,现在我想基于年-月范围进行总和计算,而不指定日期。比如说2010-11年到2011-07年,我怎样才能实现它 SELECT * FROM TT WHERE F1 BETWEEN '2010-11' AND '2011-07' ,它不起作用。如果您希望从2010-11到2011-07的所有行,直到8月1日: SELECT * FROM `table` WHERE `date_column` BETWEEN '2010-11-01' AND '2011-0
SELECT * FROM TT WHERE F1 BETWEEN '2010-11' AND '2011-07'
,它不起作用。如果您希望从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)
如果
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';
希望它对其他人也有帮助。您还需要提供每月的第一天。