这可能是一个简单的答案,但我不知道,我如何确保出发日期在到达日期之后。
谢谢
韦恩
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
这还具有标准语法和几乎所有数据库都可以理解的优点。(您的问题没有提到您正在使用的数据库。)