2017-06-01 82 views
0

我必須從兩個日期之間的表中獲取數據。獲取兩個日期之間的數據在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

你嘗試過什麼?您必須將這兩列轉換爲日期才能真正使用它們。我建議使用日期列從開始將是一個更好的方法,而不是不同日期部分的列。 –

回答

2

一個簡單的方法是使用算術:

where year * 100 + month between 201410 and 201612 

如果你想日期計算:

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

我總是忘記datefromparts。我一直在寫這個東西太長時間,而且沒有理由在自己的代碼中不得不經常以日期作爲字符串。 –

相關問題