1

これはおそらく簡単な答えですが、私にはわかりません。出発日が到着日よりも後であることを確認するにはどうすればよいですか。

ありがとう

ウェイン

DATEADD(day, ABS(CHECKSUM(NEWID()) % 365), '1 Jan 2010') as ArrivalDate,
DATEADD(day, ABS(CHECKSUM(NEWID()) % 365), '1 Jan 2010') as DepatureDate,
4

2 に答える 2

1

を使用して確認できますDATEDIFF ('day', DepatureDate, ArrivalDate)

このようにして、DepatureDateからArrivalDateを差し引くことができます。否定的な答えが得られた場合、DepatureDateはArrivalDateの前にあります。

このリンクを見てください:

DATEDIFF

編集:

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
于 2013-02-15T14:11:06.720 に答える
0

case最も簡単な方法は、ステートメントを使用することだと思います。

(case when ArrivalDate < DepartureDate then 1 else 0 end) as IsArrivalBefore

これには、標準構文であり、ほとんどすべてのデータベースで理解されるという利点もあります。(あなたの質問には、使用しているデータベースについては言及されていません。)

于 2013-02-15T16:23:12.407 に答える