ORACLEDATEDIFF
には存在しません。しかし、Oracle では、2 つの日付の間に+または-オペランド
を直接使用できます。
したがって、あなたのリクエストは次のようになります:(選択に差分値を追加するために編集)
SELECT b.BOOKINGID, g.FORENAME, g.SURNAME,
CASE WHEN (SYSDATE - b.DEPARTDATE) > 0 THEN CONCAT((SYSDATE - b.DEPARTDATE), ' days late')
ELSE CONCAT((b.DEPARTDATE - SYSDATE),' days left')
END AS "Booking Status"
FROM GUEST g, BOOKING b
WHERE g.GUESTID = b.GUESTID
AND (SYSDATE - b.DEPARTDATE) > 2;
このクエリは、2 日以上遅れている予約のみを表示します。
編集
あなたが探していることを行うクエリは次のとおりです:(ゴードン・リノフが作成したものとほぼ同じです)
SELECT b.BOOKINGID, g.FORENAME, g.SURNAME, (b.DEPARTDATE - b.ARRIVEDATE) as booking_duration
FROM GUEST g, BOOKING b
WHERE g.GUESTID = b.GUESTID
AND (b.DEPARTDATE - b.ARRIVEDATE) > 2;