これはおそらく簡単な答えですが、私にはわかりません。出発日が到着日よりも後であることを確認するにはどうすればよいですか。
ありがとう
ウェイン
DATEADD(day, ABS(CHECKSUM(NEWID()) % 365), '1 Jan 2010') as ArrivalDate,
DATEADD(day, ABS(CHECKSUM(NEWID()) % 365), '1 Jan 2010') as DepatureDate,
を使用して確認できますDATEDIFF ('day', DepatureDate, ArrivalDate)
。
このようにして、DepatureDateからArrivalDateを差し引くことができます。否定的な答えが得られた場合、DepatureDateはArrivalDateの前にあります。
このリンクを見てください:
編集:
DECLARE @var1 int;
DECLARE @var2 int;
SET @var1 = ABS(CHECKSUM(NEWID()) % 365);
SET @var2 = ABS(CHECKSUM(NEWID()) % (365-@var1));
select @var1, @var2, DATEADD(day, @var1, '1 Jan 2010') as ArrivalDate, DATEADD(day, @var2, DATEADD(day, @var1, '1 Jan 2010')) as DepatureDate
case
最も簡単な方法は、ステートメントを使用することだと思います。
(case when ArrivalDate < DepartureDate then 1 else 0 end) as IsArrivalBefore
これには、標準構文であり、ほとんどすべてのデータベースで理解されるという利点もあります。(あなたの質問には、使用しているデータベースについては言及されていません。)