Here is a select statement that demonstrates the following:
CREATE TABLE t
(activity_date date, date_from date, date_to DATE)
/
INSERT INTO t
VALUES (SYSDATE, SYSDATE - 1, SYSDATE + 1)
/
INSERT INTO t
VALUES (SYSDATE, SYSDATE - 10, SYSDATE - 5)
/
INSERT INTO t
VALUES (SYSDATE, SYSDATE + 1, SYSDATE + 5)
/
SELECT
activity_date,
date_from,
date_to,
CASE WHEN activity_date
BETWEEN date_from AND date_to
THEN 'between'
ELSE 'not between' END
AS case_result,
DECODE(SIGN(activity_date - date_from), -1,
'not between',
DECODE(SIGN(date_to - activity_date), -1,
'not between',
'between' ) )
AS decode_result
FROM t
/
DROP TABLE t
/
Related articles: