Подтвердить что ты не робот

Как получить текущий год с использованием 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')
4b9b3361

Ответ 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;