抵达日期后的出发日期

时间:2013-02-15 14:01:07

标签: sql date

这可能是一个简单的答案,但我不知道,我如何确保出发时间是在抵达日期之后。

由于

韦恩

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我认为最简单的方法是使用case语句:

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

这也具有标准语法的优点,几乎所有数据库都能理解。 (您的问题没有提到您正在使用的数据库。)