2 か月と年を考えると。言及された日はありません。これら 2 つの日付の差を SQL で計算する必要があります。SQL サーバー DB の列の例。
MonthFROM YearFROM MonthTo YearTO
12 2010 1 2012
出力は 14 か月である必要があります。
2 か月と年を考えると。言及された日はありません。これら 2 つの日付の差を SQL で計算する必要があります。SQL サーバー DB の列の例。
MonthFROM YearFROM MonthTo YearTO
12 2010 1 2012
出力は 14 か月である必要があります。
この方法で日付を保持するのは得策ではありません。
SELECT DATEDIFF(mm, CAST(YearFROM as varchar) + RIGHT('0' + CAST(MonthFROM as varchar), 2) + '01',
CAST(YearTO as varchar) + RIGHT('0' + CAST(MonthTO as varchar), 2) + '01')
SELECT DATEDIFF(month,
CONVERT(VARCHAR(19),
CAST(MonthFROM as varchar) + '/01/' + CAST(YearFROM as varchar),
101),
CONVERT(VARCHAR(19),
CAST(MonthTo as varchar) + '/01/' + CAST(YearTO as varchar),
101)) + 1 AS MonthPast
FROM MyTable;
結果は次のようになります。
MONTHPAST
14
実際の月の差はあり13
ますが14
、結果として期待どおりの結果が得られました。計算が間違っていて、本当に必要な場合は、クエリから13
を削除してください。+ 1
SQL Server 2012 を使用している場合、これを行う簡単な方法は次のとおりです。
SELECT DATEDIFF(month, DATEFROMPARTS (YearFROM, MonthFROM, 01),
DATEFROMPARTS (YearTO, MonthTo, 01))
FROM YourTable
SQL Fiddleのデモ