Tsql 出发日期大于到达日期

Tsql 出发日期大于到达日期,tsql,Tsql,如何确保我的出发日期大于以下代码中的到达日期 SELECT ArrivalDate, DATEADD(day, RAND(checksum(NEWID()))*1.5 * LengthOfStay.LengthofStay, ArrivalDate) AS DepartureDate FROM Bookings, LengthOfStay ORDER BY ArrivalDate 谢谢 Wayne尝试此查询 SELECT * FROM ( SELECT

如何确保我的出发日期大于以下代码中的到达日期

SELECT ArrivalDate, DATEADD(day, RAND(checksum(NEWID()))*1.5
* LengthOfStay.LengthofStay, ArrivalDate) AS DepartureDate    
FROM Bookings, LengthOfStay
ORDER BY ArrivalDate
谢谢

Wayne

尝试此查询

SELECT * FROM
    (
      SELECT 
          ArrivalDate, 
          DATEADD(day, RAND(checksum(NEWID()))*1.5   * LengthOfStay.LengthofStay, ArrivalDate) AS DepartureDate    
      FROM   
          Bookings, LengthOfStay
    ) a
WHERE a.DepartureDate > a.ArrivalDate
ORDER BY a.ArrivalDate
取一个整数。。。从随机化中返回的任何十进制值都将被截断。因此,您可能只是将
0
添加到
ArrivalDate
,导致两个日期相等

您只需在随机化中添加最少的
1
即可解决此问题:

SELECT ArrivalDate, DATEADD(day, 1 + RAND(checksum(NEWID()))*1.5
* LengthOfStay.LengthofStay, ArrivalDate) AS DepartureDate    
FROM Bookings, LengthOfStay
ORDER BY ArrivalDate

你们知道为什么上面的查询不会插入到一个表中,其中出发日期是一个日期字段吗?