0

私は2つの日付を持っており、両方の日付を含む日数を知りたいので、次のようなことを試しました:

select datediff("d", '10/11/2012', '10/12/2012')

1 と表示されていますが、11 日と 12 日が 2 日あるため、結果を 2 にしたいと思います。

4

3 に答える 3

9

SQL の最新バージョンでは、整数の追加がサポートされました! わーい。

select datediff("d", '10/11/2012', '10/12/2012') + 1
                                                ^^^^^
于 2012-10-11T09:01:21.667 に答える
1

あなたが指摘したように、datediffは常に2日間の違いを見つけます。あなたの例では、これは1です。これを包括的にしたい場合は、結果に+1しないのはなぜですか?

select datediff("d", '10/11/2012', '10/12/2012') + 1
于 2012-10-11T09:02:45.143 に答える
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
于 2012-10-11T09:41:15.033 に答える