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