私は2つの日付を持っており、両方の日付を含む日数を知りたいので、次のようなことを試しました:
select datediff("d", '10/11/2012', '10/12/2012')
1 と表示されていますが、11 日と 12 日が 2 日あるため、結果を 2 にしたいと思います。
私は2つの日付を持っており、両方の日付を含む日数を知りたいので、次のようなことを試しました:
select datediff("d", '10/11/2012', '10/12/2012')
1 と表示されていますが、11 日と 12 日が 2 日あるため、結果を 2 にしたいと思います。
SQL の最新バージョンでは、整数の追加がサポートされました! わーい。
select datediff("d", '10/11/2012', '10/12/2012') + 1
^^^^^
あなたが指摘したように、datediffは常に2日間の違いを見つけます。あなたの例では、これは1です。これを包括的にしたい場合は、結果に+1しないのはなぜですか?
select datediff("d", '10/11/2012', '10/12/2012') + 1
負の差でも操作している場合、1 を追加しても探している答えが得られない可能性があります。このような状況を次のように処理できます。
declare @from datetime = '2012-10-11'
declare @to datetime = '2012-10-10'
select datediff(day, @from, @to)
+ case when datediff(day, @from, @to) < 0 then -1 else 1 end