programing tip

Oracle에서 SQL을 사용하여 올해를 어떻게 구합니까?

itbloger 2020. 12. 10. 19:07
반응형

Oracle에서 SQL을 사용하여 올해를 어떻게 구합니까?


SQL 문에 현재 연도를 변수로 추가해야합니다. SQL을 사용하여 현재 연도를 검색하려면 어떻게해야합니까?

  중에서 
    TO_DATE ('01 / 01 / ** currentYear ** 00:00:00 ','DD / MM / YYYY HH24 : MI : SS ')
    TO_DATE ('31 / 12 / ** currentYear ** 23:59:59 ','DD / MM / YYYY HH24 : MI : SS ')

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

또 다른 옵션은 다음과 같습니다.

SELECT *
  FROM TABLE
 WHERE EXTRACT( YEAR FROM date_field) = EXTRACT(YEAR FROM sysdate) 

extract(datetime)기능을 사용 하는 것은 매우 쉽고 간단합니다.

년, 월, 일, 분, 초를 반환합니다.

예:

select extract(year from sysdate) from dual;

또 다른 옵션은 다음과 같습니다.

SELECT * FROM mytable
 WHERE TRUNC(mydate, 'YEAR') = TRUNC(SYSDATE, 'YEAR');

이 일을 죽이기 때문에 연도를 지정할 필요가 없습니다.

select * from demo
where  somedate between to_date('01/01 00:00:00', 'DD/MM HH24:MI:SS')
                and     to_date('31/12 23:59:59', 'DD/MM HH24:MI:SS');

그러나 현재 연도에 해당하는 모든 날짜 값을 지정하려는 경우 FerranB에서 허용하는 답변이 더 합리적입니다.


oracle-sql에서 현재 시스템 날짜를 표시하려면

   select sysdate from dual;

참고 URL : https://stackoverflow.com/questions/1119710/how-do-i-get-the-current-year-using-sql-on-oracle

반응형