Как получить текущий год с использованием SQL на Oracle?
Мне нужно добавить текущий год в качестве переменной в SQL-инструкции, как я могу получить текущий год с помощью SQL?
то есть.
BETWEEN
TO_DATE('01/01/**currentYear** 00:00:00', 'DD/MM/YYYY HH24:MI:SS')
AND
TO_DATE('31/12/**currentYear** 23:59:59', 'DD/MM/YYYY HH24:MI:SS')
Ответы
Ответ 1
С to_char:
select to_char(sysdate, 'YYYY') from dual;
В вашем примере вы можете использовать что-то вроде:
BETWEEN trunc(sysdate, 'YEAR')
AND add_months(trunc(sysdate, 'YEAR'), 12)-1/24/60/60;
Значения сравнения - это именно то, что вы запрашиваете:
select trunc(sysdate, 'YEAR') begin_year
, add_months(trunc(sysdate, 'YEAR'), 12)-1/24/60/60 last_second_year
from dual;
BEGIN_YEAR LAST_SECOND_YEAR
----------- ----------------
01/01/2009 31/12/2009
Ответ 2
Другой вариант:
SELECT *
FROM TABLE
WHERE EXTRACT( YEAR FROM date_field) = EXTRACT(YEAR FROM sysdate)
Ответ 3
Используйте extract(datetime)
функцию так просто, просто.
Он возвращает год, месяц, день, минуту, секунду
Пример:
select extract(year from sysdate) from dual;
Ответ 4
Еще один вариант:
SELECT * FROM mytable
WHERE TRUNC(mydate, 'YEAR') = TRUNC(SYSDATE, 'YEAR');
Ответ 5
Чтобы отобразить текущую системную дату в oracle-sql
select sysdate from dual;