获取两个日期之间的数据在sql

问题描述:

我必须从两个日期之间的表中获取数据。获取两个日期之间的数据在sql

该表没有日期格式列,因为它有两列一个月和一年的其他列。

ID  UsrId  Month Year 
212175 135564934 6  2016 
212175 135564934 11  2013 
212175 135564934 3  2014 
212175 135564934 7  2015 
212175 135564934 2  2016 
212175 135564934 1  2016 

我想得到两个日期(mm/yyyy)之间的行,从2014年1月1日到12/2016。

这应该在一个存储过程中,它将采用两个输入参数作为begindate和enddate。

谢谢!

+2

你尝试过什么?您必须将这两列转换为日期才能真正使用它们。我建议使用日期列从开始将是一个更好的方法,而不是不同日期部分的列。 –

一个简单的方法是使用算术:

where year * 100 + month between 201410 and 201612 

如果你想日期计算:

where datefromparts(year, month, 1) between '20141001' and '20161201' 
+1

我总是忘记datefromparts。我一直在写这个东西太长时间,而且没有理由在自己的代码中不得不经常以日期作为字符串。 –