1

次のコードで、出発日が到着日よりも大きいことを確認するにはどうすればよいですか。

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

ありがとう

ウェイン

4

2 に答える 2

2

DATEADD整数を取ります...ランダム化から返された小数値は切り捨てられます。したがって、 に追加0するだけArrivalDateで、2 つの日付が等しくなる可能性があります。

1ランダム化に最小限の値を追加するだけで、これを修正できます。

SELECT ArrivalDate, DATEADD(day, 1 + RAND(checksum(NEWID()))*1.5
* LengthOfStay.LengthofStay, ArrivalDate) AS DepartureDate    
FROM Bookings, LengthOfStay
ORDER BY ArrivalDate
于 2013-02-19T16:39:28.450 に答える
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
于 2013-02-19T16:39:11.317 に答える