这可能是一个简单的答案,但我不知道,我如何确保出发时间是在抵达日期之后。
由于
韦恩
DATEADD(day, ABS(CHECKSUM(NEWID()) % 365), '1 Jan 2010') as ArrivalDate,
DATEADD(day, ABS(CHECKSUM(NEWID()) % 365), '1 Jan 2010') as DepatureDate,
答案 0 :(得分:1)
您可以使用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
答案 1 :(得分:0)
我认为最简单的方法是使用case
语句:
(case when ArrivalDate < DepartureDate then 1 else 0 end) as IsArrivalBefore
这也具有标准语法的优点,几乎所有数据库都能理解。 (您的问题没有提到您正在使用的数据库。)