반응형
TRUNC나 ROUND 함수는 원래 NUMBER형 함수이지만 DATE형에서도 사용이 가능하고, 은근히 자주 사용하는 함수들입니다. 시험에서도 자주 출제하는 문제이니 꼭 알아두세요!!
문제
현재 시각은 2022년 2월 15일 12:30:00 입니다.
아래의 문제들의 건수를 적어보세요.
[ORDER]
ORDER_DATE | ORDER_AMT |
2022-01-01 12:00:00 | 1000 |
2022-02-01 13:00:00 | 2000 |
2022-02-15 09:30:00 | 3000 |
2022-02-15 15:30:00 | 4000 |
NULL | 5000 |
[문제1]
SELECT SUM(ORDER_AMT)
FROM TABLE_A
WHERE ORDER_DATE >= ROUND(SYSDATE)
[문제2]
SELECT SUM(ORDER_AMT)
FROM TABLE_A
WHERE ORDER_DATE >= TRUNC(SYSDATE)
[문제3]
SELECT SUM(ORDER_AMT)
FROM TABLE_A
WHERE ORDER_DATE >= ROUND(SYSDATE, 'hh')
[문제4]
SELECT SUM(ORDER_AMT)
FROM TABLE_A
WHERE ORDER_DATE >= TRUNC(SYSDATE, 'hh')
문제풀이
- 날짜 함수에 ROUND, TRUNC 함수 DEFAULT기준은 일자(DD)이다.
- ROUND 함수는 반올림 함수이고, 날짜에서 반올림 기준이 시는 12시부터 올림, 분은 30분부터 올림, 초는 30초부터 올림이다.
- TRUNC함수는 내림 함수라서 일자에 TRUNC는 00:00:00이 되고 시간에 TRUNC 함수를 하면 해당 시에 00분 00초가 된다.
-- 현재 시각이 2022년 2월 15일 12:00 는 SYSDATE 와 동일하다!
[문제1]
ROUND(SYSDATE)
>> 인자값이 없으면 일자('dd')로 적용된다.
>> 20220215 123000 에서 12시는 올림에 포함되므로 20220216 000000 이 된다.
[문제2]
TRUNC(SYSDATE)
>> 인자값이 없으면 일자('dd')로 적용된다.
>> 20220215 123000 에서 시간에 상관없이 내림이므로 20220215 000000 이 된다.
[문제3]
ROUND(SYSDATE, 'hh')
>> 시간('hh') 인자 값에 따라 적용된다.
>> 20220215 123000 에서 30분은 올림에 포함되므로 20220215 130000 이 된다.
[문제4]
TRUNC(SYSDATE, 'hh')
>> 시간('hh') 인자 값에 따라 적용된다.
>> 20220215 123000 에서 분에 상관없이 내림이므로 20220215 120000 이 된다.
>> ROUND는 함수에 기준이 일자이면 시간에 따라 올림, 내림이 결정됩니다. 이걸 꼭 기억하세요
오늘은 날짜 함수에 숫자 함수인 TRUNC, ROUND에 사용법을 알아봤습니다.
추가적인 궁금증은 댓글로 달아주세요!! :)
반응형
'SQL' 카테고리의 다른 글
2023년 SQLD, SQLP, ADP, ADSP, DAP, DAsP 시험 일정 (0) | 2022.11.29 |
---|---|
[SQLD 강의] 숫자 함수 차이 ( abs, round, ceil, floor, trunc ) (0) | 2022.11.29 |
SQL 강의 SQLP SQLD 기출 문제 - 011 ( UNION, UNION ALL, MINUS, INTERSECT 등 ) (0) | 2022.10.21 |
SQL 강의 SQLP SQLD 기출 문제 - 010 ( LIKE, JOIN ) (0) | 2022.10.20 |
SQL 강의 SQLP SQLD 기출 문제 - 009 ( UNION ALL ) (0) | 2022.10.13 |
댓글