我正在嘗試編寫SQL代碼(使用SQL Developer),檢查過去6個月保險期限內是否有生日。檢查生日是否在跨越年度休假的6個月跨度
這就是我的代碼目前的樣子。
SELECT DRIVER_KEY, CASE WHEN BDAY BETWEEN EFFDAY AND EXPDAY THEN 1 ELSE 0 END AS BDAYIND FROM (
SELECT DISTINCT A.DRIVER_KEY
, TO_CHAR(A.BIRTH_DATE,'mm/dd') AS BDAY
, TO_CHAR(SUBSTR(A.EFFECTIVE_DATE_KEY,5,2)||'/'||SUBSTR(A.EFFECTIVE_DATE_KEY,7,2)) AS EFFDAY
, TO_CHAR(SUBSTR(A.EXPIRATION_DATE_KEY,5,2)||'/'||SUBSTR(A.EXPIRATION_DATE_KEY,7,2)) AS EXPDAY
FROM DRIVER_TABLE A
);
它的工作原理 - 只要該術語不會在一年中突破。但是,我的代碼目前說01/25不在09/19和03/19之間......我該如何解決這個問題?
編輯您的問題並提供示例da ta和期望的結果。你的問題提到6個月的時間,但你的代碼沒有這樣的東西。 –
爲什麼不使用完整日期'mm/dd/yyyy'來確定它是否在範圍內? –
由於您正在轉換爲「CHAR」或「字符串」數據,因此「01」不在「09」和「03」之間。 –