获取两个月到两个给定年份之间的sql数据

获取两个月到两个给定年份之间的sql数据,sql,Sql,我想从表中获取2014年6月至2016年4月之间的数据。 但这不会返回任何值。解决方案是什么。显示您的查询您尝试了什么,或者 尝试在查询之间使用 需要查看您首先尝试的查询。但是试试这个 select * from table where datecolumn >= '2014-06-01' and datecolumn <= '2016-04-01' 添加年份*100和月份以获得格式为YYYYMM的整数值: select * from tablename where (yea

我想从表中获取2014年6月至2016年4月之间的数据。
但这不会返回任何值。解决方案是什么。

显示您的查询您尝试了什么,或者

尝试在查询之间使用


需要查看您首先尝试的查询。但是试试这个

 select *
 from table
 where datecolumn >= '2014-06-01' and datecolumn <= '2016-04-01'

添加年份*100和月份以获得格式为YYYYMM的整数值:

select *
from tablename
where (year * 100 + month) between (2014 * 100 + 4) and (2016 * 100 + 6)
或者,如果您的dbms支持行和表构造函数:


我使用下面的SQL查询从表中选择两个选定月份和两个给定年份之间的数据

SELECT * FROM usr_hired_duration where STR_TO_DATE(CONCAT(year,'-',LPAD(month,2,'01'),'-',LPAD(payment_date,2,'01')), '%Y-%m-%d') BETWEEN STR_TO_DATE(CONCAT(2014,'-',LPAD(03,2,'01'),'-',LPAD(01,2,'01')), '%Y-%m-%d') AND STR_TO_DATE(CONCAT(2016,'-',LPAD(06,2,'01'),'-',LPAD(01,2,'01')), '%Y-%m-%d')

欢迎来到StackOverflow。请阅读。对于初学者,请不要包含代码或数据的图像。相反,请在此处复制并粘贴代码或数据。它们是非常无用的,尤其是当有人在回复中面临重新键入所述代码/数据时。这可以正常工作,但当我更改4和6的位置时..则显示空行。从usr\u租用期限中选择*,其中月数在6到4之间,年数在2014到2016之间不起作用。因为第一个条件失败了。您需要了解between在给定范围内返回的值之间做了什么。BETWEEN是>=的缩写,不会返回2015年11月的日期。thnks但这不起作用。我没有得到想要的结果。与我的第一个查询类似,但可能会因为执行了大量转换而变慢。请看一下我的第二个查询,它的性能很可能会超过这个查询和我的第一个查询。
select *
from tablename
where (year, month) between (2014, 4) and (2016, 6)
SELECT * FROM usr_hired_duration where STR_TO_DATE(CONCAT(year,'-',LPAD(month,2,'01'),'-',LPAD(payment_date,2,'01')), '%Y-%m-%d') BETWEEN STR_TO_DATE(CONCAT(2014,'-',LPAD(03,2,'01'),'-',LPAD(01,2,'01')), '%Y-%m-%d') AND STR_TO_DATE(CONCAT(2016,'-',LPAD(06,2,'01'),'-',LPAD(01,2,'01')), '%Y-%m-%d')