programing

Oracle의 DATIFF 함수

telecom 2023. 4. 5. 21:16
반응형

Oracle의 DATIFF 함수

Oracle을 사용해야 하는데 Oracle DB에서 DATIFF 기능이 작동하지 않습니다.

Oracle에서 다음 코드를 작성하는 방법INTERVAL이나 TRUNC를 사용한 예를 몇 가지 보았습니다.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;

Oracle에서는 2개의 날짜를 빼고 일 단위로 차분을 얻을 수 있습니다.또한 SQL Server 또는 MySQL과 달리 Oracle에서는select없는 성명from절을 클릭합니다.이 문제를 해결하는 한 가지 방법은 내장된 더미 테이블을 사용하는 것입니다.dual:

SELECT TO_DATE('2000-01-02', 'YYYY-MM-DD') -  
       TO_DATE('2000-01-01', 'YYYY-MM-DD') AS DateDiff
FROM   dual

두 날짜를 빼면 됩니다.

select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;

결과는 일수 차이가 될 것이다.

자세한 내용은 설명서를 참조하십시오.
https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042

간단히 두 개의 날짜를 빼면 된다.먼저 캐스팅을 해야 돼요.to_date:

select to_date('2000-01-01', 'yyyy-MM-dd')
       - to_date('2000-01-02', 'yyyy-MM-dd')
       datediff
from   dual
;

결과는 일 단위이며, 이 두 날짜의 차이는-1(원하시면 두 날짜를 바꿀 수 있습니다).몇 시간 안에 받고 싶다면 결과에 24를 곱하면 됩니다.

날짜를 직접 빼서 날짜의 차이를 구할 수 있습니다.

    SET SERVEROUTPUT ON ;
    DECLARE
        V_VAR NUMBER;
    BEGIN
         V_VAR:=TO_DATE('2000-01-02', 'YYYY-MM-DD') - TO_DATE('2000-01-01', 'YYYY-MM-DD') ;
         DBMS_OUTPUT.PUT_LINE(V_VAR);
    END;

언급URL : https://stackoverflow.com/questions/28406397/datediff-function-in-oracle

반응형