Oracle SQL을 사용하다 보면 시간 단위의 데이터를 분이나 초, 또는 일 단위로 변환해야 할 때가 많습니다. 특히 서버 로그, 트랜잭션 처리 시간, 사용자 접속 시간 등 다양한 시스템 데이터에서 초 단위로 측정된 값을 사람이 이해하기 쉬운 단위로 바꿔야 하는 경우가 자주 발생하죠.
이번 포스팅에서는 오라클 SQL에서 **초(Second)**를 기준으로 **분(Minute), 시간(Hour), 일(Day)**로 변환하는 방법을 아주 쉽게 설명드리겠습니다. 실제 예제와 함께 응용 가능한 실무 팁도 함께 제공드리니, 끝까지 읽어보시면 시간 처리에 대한 감을 확실히 잡으실 수 있을 것입니다.
🔧 1. 오라클에서 초를 분, 시간, 일로 변환하는 기본 개념
오라클 SQL에서 시간 관련 단위를 직접 계산하기 위해서는 초 단위 기준으로 단순한 산술 연산을 사용하는 것이 일반적입니다.
다음과 같은 상식적인 시간 계산이 바탕이 됩니다:
- 1분 = 60초
- 1시간 = 60분 × 60초 = 3,600초
- 1일 = 24시간 × 60분 × 60초 = 86,400초
즉, 초를 60으로 나누면 분, 3,600으로 나누면 시간, 86,400으로 나누면 일 단위로 환산할 수 있습니다.
이를 바탕으로 SQL 쿼리를 구성해보면 다음과 같습니다.
SELECT 86400 AS seconds -- 초
, FLOOR(86400 / 60) AS minutes -- 분
, FLOOR(86400 / (60*60)) AS hours -- 시간
, FLOOR(86400 / (24*60*60)) AS days -- 일
FROM dual;
이 쿼리의 결과는 다음과 같습니다:
seconds minutes hours days
| 86400 | 1440 | 24 | 1 |
위 쿼리에서는 FLOOR 함수를 사용해 소수점을 버리고 정수 값만 가져왔습니다. 이 방법은 데이터 전환 시 흔히 쓰이며, 예측 가능한 결과를 얻기 위한 실무적 필수 테크닉이기도 합니다.
🔍 2. FLOOR 함수란 무엇인가?
FLOOR() 함수는 소수점 이하 값을 모두 버리고 정수 부분만 남겨주는 함수입니다.
예를 들어:
SELECT FLOOR(5.9) FROM dual; -- 결과: 5
FLOOR(86400 / 60) 이라면 86400 ÷ 60 = 1440.0이 되는데, 여기서 .0을 제외하고 1440만 반환하게 됩니다.
시간 단위를 변환할 때 정수 단위로만 필요할 경우 매우 유용하게 쓰이죠.
🧠 3. 실무에서 자주 쓰는 초 변환 공식
다음은 자주 활용하는 공식들을 정리한 것입니다:
변환 대상 공식
| 초 → 분 | FLOOR(초 / 60) |
| 초 → 시간 | FLOOR(초 / (60 * 60)) |
| 초 → 일 | FLOOR(초 / (24 * 60 * 60)) |
각 공식을 기억해두면 SQL 스크립트를 빠르게 작성할 수 있고, 시간 데이터를 다양한 관점에서 분석하는 데 큰 도움이 됩니다.
🧪 4. 실전 응용 예제: SYSDATE 기준 현재 시각 초 단위로 변환
이번에는 Oracle의 SYSDATE를 활용한 실제 시간 변환 응용 쿼리를 살펴보겠습니다.
SELECT SYSDATE
, TO_CHAR(SYSDATE, 'SSSSS') AS sssss
, FLOOR(TO_CHAR(SYSDATE, 'SSSSS') / 60) AS minutes
, FLOOR(TO_CHAR(SYSDATE, 'SSSSS') / (60*60)) AS hours
, TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'SSSSS'), 'SSSSS'), 'HH24:MI:SS') AS times
FROM dual;
👀 쿼리 설명
- TO_CHAR(SYSDATE, 'SSSSS') : 자정(00:00:00) 이후 현재 시각까지의 경과 시간을 초 단위로 반환합니다.
- FLOOR(...) : 위에서 설명한 방식으로 분/시간 단위로 변환합니다.
- TO_DATE(..., 'SSSSS') + TO_CHAR(..., 'HH24:MI:SS') : 초 값을 다시 시:분:초 형식의 시간으로 변환합니다.
예시 결과 (오전 11시 35분 13초 기준):
SYSDATE SSSSS MINUTES HOURS TIMES
| 2024/08/26 11:35:13 | 41713 | 695 | 11 | 11:35:13 |
해당 결과는 00:00:00부터 약 41,713초가 경과했으며, 이는 695분 또는 11시간 정도에 해당한다는 뜻입니다.
🔄 5. 시간 단위 데이터를 활용한 실무 활용 시나리오
초 → 분, 시간, 일 단위 변환은 다음과 같은 실무 상황에서 매우 유용하게 쓰입니다:
- 로그 분석: 사용자의 접속 시간이나 페이지 머문 시간을 분 단위로 변환.
- 서버 모니터링: 시스템 가동 시간이나 처리 시간의 통계적 분석.
- 경과 시간 측정: 특정 작업 처리에 걸린 초 단위 데이터를 직관적으로 표현.
- 보고서 작성: 초 단위를 그대로 출력하면 이해하기 어렵기 때문에 사람이 읽기 쉬운 단위로 환산.
예를 들어, 특정 테이블에서 START_TIME, END_TIME이 DATE 타입으로 저장돼 있을 때, 두 시간 차이를 초 단위로 구하고 다시 시간/분 단위로 바꿀 수도 있습니다:
SELECT (END_TIME - START_TIME) * 24 * 60 * 60 AS elapsed_seconds,
FLOOR((END_TIME - START_TIME) * 24 * 60) AS elapsed_minutes
FROM 작업_로그;
✅ 마무리 요약
항목 설명
| 기본 시간 단위 | 1분=60초, 1시간=3600초, 1일=86400초 |
| 사용 함수 | FLOOR(), TO_CHAR(..., 'SSSSS'), TO_DATE(..., 'SSSSS') |
| 응용 방법 | 초 → 분/시간/일 변환, 로그 분석, 경과 시간 계산 등 |
| 주의사항 | FLOOR로 소수점 제거, 정수만 필요할 경우만 사용 |
💬 마치며
시간 데이터는 단순히 저장되는 값이 아닌, 분석과 통찰의 열쇠가 되는 중요한 정보입니다. Oracle SQL에서 초를 다양한 시간 단위로 바꾸는 방법은 단순하지만 실무에서 반드시 알아야 할 핵심입니다.
이 포스팅을 통해 초 → 분/시간/일 변환 방법을 명확하게 이해하셨다면, 여러분의 SQL 스킬은 한층 더 업그레이드된 것입니다. 데이터 처리의 정확성과 효율성을 동시에 잡기 위해, 이번 내용을 실무에 꼭 적용해보시길 바랍니다.
'정보' 카테고리의 다른 글
| 상업적 이용도 OK! KERIS 학교 안심폰트 138종 완전정복 및 다운로드 가이드 (2) | 2025.05.08 |
|---|---|
| [Oracle SQL 강의] 오라클 시간 포맷 변경 완벽 가이드 (HH24:MI:SS부터 밀리초, 타임존까지) (0) | 2025.05.07 |
| [Oracle SQL] 날짜(Date)에서 시간만 추출하는 2가지 방법: TO_CHAR vs EXTRACT 완벽 정리 (0) | 2025.05.07 |
| [Oracle SQL 꿀팁] 오라클에서 근삿값(근사치)을 찾는 2가지 핵심 방법: ROW_NUMBER와 RANK 함수 완벽 비교 (0) | 2025.05.07 |
| [Oracle SQL] 오라클 SYSDATE에서 날짜만 조회하는 2가지 방법 (TRUNC vs TO_CHAR 완전 정리) (0) | 2025.05.07 |