Напишите функцию, которая по дате определяет високосный год или нет
CREATE OR REPLACE FUNCTION leap_year_check(p_date IN DATE) RETURN INTEGER IS v_date DATE; BEGIN SELECT to_date('29.02' || '.' || extract(YEAR FROM p_date), 'dd.mm.yyyy') INTO v_date FROM dual; RETURN 1; EXCEPTION WHEN OTHERS THEN RETURN 0; END leap_year_check; /
Запрос на проверку даты:
SELECT leap_year_check(SYSDATE - 300) AS leap_year, SYSDATE - 300 FROM dual;
Результат — FALSE (0):
0 27.02.2017 12:18:53
SELECT leap_year_check(SYSDATE - 500) AS leap_year, SYSDATE - 500 FROM dual;
Результат — TRUE (1):
1 11.08.2016 12:19:33
P.S.
Конфигурация СУБД — Oracle Database 11g Express Edition Release 11.2.0.2.0
IDE — PL/SQL Developer Version 11.0.6.1776
Tags: Oracle