본문 바로가기
SQL

SQL 강의 SQLP SQLD 기출 문제 - 012 ( DATE TYPE, TRUNC, ROUND 함수 )

by SQL Master 2022. 10. 24.
반응형

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에 사용법을 알아봤습니다.

추가적인 궁금증은 댓글로 달아주세요!! :)

 

반응형

댓글