2013-02-19 71 views
1

如何確保我的出發日期大於下列代碼中的到達日期。出發日期大於抵達日期

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

感謝

韋恩

回答

1

嘗試此查詢

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 
2

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

相關問題