出发日期大于抵达日期
问题描述:
如何确保我的出发日期大于下列代码中的到达日期。出发日期大于抵达日期
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
谢谢两位,这两个查询工作。 – wafw1971 2013-02-19 16:51:18
您是否会知道为什么上述查询不会插入离开日期为日期字段的表格中? – wafw1971 2013-02-19 16:57:19
@ wafw1971你有错误吗?或者只是缺少数据? – 2013-02-19 17:22:13