出发日期大于抵达日期

出发日期大于抵达日期

问题描述:

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

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

感谢

韦恩

尝试此查询

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 

DATEADD取整数...任何十进制值返回从随机将只被截断。因此,您可能只需将0添加到ArrivalDate,结果两个日期相等。

你可以仅仅通过增加最少的1您随机解决这个问题:

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

谢谢两位,这两个查询工作。 – wafw1971 2013-02-19 16:51:18

+0

您是否会知道为什么上述查询不会插入离开日期为日期字段的表格中? – wafw1971 2013-02-19 16:57:19

+0

@ wafw1971你有错误吗?或者只是缺少数据? – 2013-02-19 17:22:13