반응형

Database

    [Oracle] 오라클 TRUNC 함수 사용법 (날짜, 시간, 소수점 절사하기)

    [Oracle] 오라클 TRUNC 함수 사용법 (날짜, 시간, 소수점 절사하기)

    [ TRUNC 함수 ] 오라클의 기본적인 함수인 TRUNC함수에 대해 알아보겠습니다. 단순 절사 기능 외에 시간, 날짜, 소수점 절사 등 다양한 옵션으로 활용이 가능합니다. - 사용법 TRUNC("값", "옵션"); TRUNC(날짜, 옵션) 옵션이 없는 경우 기본적으로 시간을 절사합니다. 옵션을 입력한 경우 입력한 부분 이하 부분을 "00"으로 초기화 합니다. - 시간 절사 WITH T01 AS ( SELECT SYSDATE AS TODAY FROM DUAL ) SELECT TODAY AS "현재 날짜" , TRUNC(TODAY) AS "시간 절사" , TRUNC(TODAY, 'DD') AS "시간 절사" , TRUNC(TODAY, 'HH') AS "분, 초 절사" , TRUNC(TODAY, 'MI') ..

    [Oracle] 천단위 구분기호 출력하는 방법

    [Oracle] 천단위 구분기호 출력하는 방법

    오라클에서 숫자데이터를 천단위마다 ','로 구분하여 조회하는 방법을 알아보겠습니다. 방법은 크게 2가지로 나눌 수 있습니다. 방법 1. TO_CHAR 사용하기 참고. TO_CHAR 함수란? 👉 날짜, 숫자 등의 값을 문자열로 변환하는 함수 TO_CHAR 함수를 사용하여 포맷을 다음과 같이 지정해줍니다. 'FM999,999' FM: 소수점 이상의 공백 및 소수점 이하의 0 제거 9: 해당 자리의 숫자. 값이 없을 경우 소수점 이상은 공백, 소수점 이하는 0으로 표시 0: 해당 자리의 숫자. 값이 없을 경우 0으로 표시 👉 값을 고정적으로 표시하는 경우에 주로 사용. SELECT TO_CHAR(123456, 'FM999,999') AS VAL1 FROM DUAL FM을 사용하지 않으면? 그러면, FM을 사용..

    [Oracle] 해당 월의 말일자만 조회하기, 가장 최근 일자만 조회하기 (Feat. LAST_DAY 함수)

    [Oracle] 해당 월의 말일자만 조회하기, 가장 최근 일자만 조회하기 (Feat. LAST_DAY 함수)

    [ 상황 ] 매일 들어오는 데이터를 월별로 말일자만 집계하여 보려고 합니다. 이때, 해당월이 말일자에 도래하지 않아도 가장 최근 일자로 집계하여 보고자 합니다. ex) 오늘이 2022-06-22인 경우, 2022-06-31의 데이터가 없으니 2022-06-22 데이터로 집계 [ 해결방법 ] 1) TABLE에 들어있는 날짜 데이터 파악하기 - 아래와 같이 날짜로 GROUP BY하여 조회하면 일자별로 데이터가 존재하는 것을 확인할 수 있습니다. SELECT PROC_DATE FROM TABLE GROUP BY PROC_DATE ORDER BY 1 DESC 2) LAST_DAY 함수 사용하기 LAST_DAY 함수란? - 오라클에서 해당월의 마지막 날짜를 가져오는 함수 - 사용법 LAST_DAY(DATE 값) ..

    [Oracle] 쿼리 속도 향상 시키기 (Feat. 좌변을 가공하지 않기)

    [Oracle] 쿼리 속도 향상 시키기 (Feat. 좌변을 가공하지 않기)

    스크립트를 작성할 때, '좌변을 가공하지 말라'는 이야기를 들었는데 왜 그럴까요? 아래와 같은 경우에 DB 인덱스를 사용할 수 없다고 합니다. 인덱스 컬럼이 비교되기 전에 변형이 일어나는 경우 부정형으로 조건을 기술(not)한 경우 인덱스 컬럼이 NULL로 비교되는 경우 옵티마이저가 필요에 따라 상기 적용원칙을 준수했음에도 불구하고 특정 인덱스의 사용을 취사선택함으로써 사용되지 않는 경우 좌변을 가공하게 되면 인덱스를 사용할 수 없으므로 DB 컬럼을 가공하지 않고, 상수 부분을 가공해서 사용하도록 작성하는 것이 바람직합니다. [ 예시 ] 1) 올바르지 않은 예시 (좌변을 가공) 아래와 같이 좌변의 PROC_DATE를 가공하여 사용하게 되면 200 row(s) fetched - 507ms (+64ms) -..

반응형