DATE & TO_DATE 정리

TJK·2025년 8월 22일

DATE & TO_DATE 정리

DATE는 날짜와 시간을 저장하는 SQL의 핵심 데이터 타입입니다. SQLD 시험에서는 DATE 타입의 저장 방식과 함께 TO_DATE, TO_CHAR와 같은 날짜 변환 함수, 그리고 날짜 연산의 원리를 정확히 이해하는 것이 중요합니다.


1. DATE 타입의 핵심 (★★★★★)

  • 저장 방식: DATE연/월/일/시/분/초까지 모두 저장하는 데이터 타입입니다.
  • 입력 방식: DATE 타입 컬럼에 값을 넣을 때는 반드시 TO_DATE 함수를 사용해 문자열을 날짜로 변환해야 합니다.
    • TO_DATE('문자열', '포맷'): 문자열을 DATE 타입으로 변환.
    • SYSDATE: 현재 시스템의 날짜와 시간을 반환합니다.

2. 주요 함수와 연산

1. 변환 함수

  • TO_DATE: 문자열DATE 타입으로 변환합니다. INSERTWHERE 조건에 주로 사용됩니다.
  • TO_CHAR: DATE 타입을 원하는 형식의 문자열로 변환합니다. SELECT 절에서 주로 사용됩니다.

2. 날짜 연산 (★★★★★)

  • + 연산: DATE에 숫자를 더하면 **일(day)**이 추가됩니다.
    • 예: SYSDATE + 7은 오늘로부터 7일 뒤의 날짜를 의미합니다.
  • - 연산: 두 DATE를 빼면 두 날짜 간의 일수 차이를 반환합니다.

3. SQLD 시험 핵심 포인트

  • TO_DATETO_CHAR는 역할이 정반대입니다. 문자열을 DATE로 바꿀 때는 TO_DATE, DATE를 문자열로 바꿀 때는 TO_CHAR입니다.
  • DATE연/월/일 뿐만 아니라 **시/분/초**까지 저장한다는 점을 반드시 기억해야 합니다.
  • 날짜 +, - 연산은 단위로 계산됩니다.

4. 최종 암기 팁

  • TO_DATE = **TO_D**ate (날짜로!)
  • TO_CHAR = **TO_C**haracter (문자로!)
  • DATE = Date + Time (날짜와 시간 모두!)

실전 기출 문제 스타일

1. 다음 중 hire_dateDATE 타입인 테이블에 올바른 값을 삽입하는 쿼리는?
A. INSERT INTO Employees VALUES (20250822);
B. INSERT INTO Employees VALUES ('2025-08-22');
C. INSERT INTO Employees VALUES (TO_DATE('2025/08/22', 'YYYY-MM-DD'));
D. INSERT INTO Employees VALUES (TO_DATE('2025-08-22', 'YYYY-MM-DD'));

2. 다음 SQL의 실행 결과는?

SELECT TO_DATE('2025-08-22', 'YYYY-MM-DD') - TO_DATE('2025-08-20', 'YYYY-MM-DD') FROM dual;

A. 1
B. 2
C. 3
D. 에러

3. SYSDATE2025년 8월 22일 14시 30분일 때, 다음 쿼리의 실행 결과는?

SELECT TO_CHAR(SYSDATE + 2, 'YYYY-MM-DD') FROM dual;

A. 2025-08-22
B. 2025-08-23
C. 2025-08-24
D. 2025-08-25


정답 및 해설

  • 문제 1 정답: D
    • 해설: A는 숫자이므로 틀렸고, B는 Oracle에서는 문자열을 자동 변환하지만 표준 방식이 아닙니다. C는 포맷이 일치하지 않아 에러가 발생합니다. D가 가장 올바른 구문입니다.
  • 문제 2 정답: B
    • 해설:DATE 타입의 차이는 일수로 반환됩니다. 2025-08-222025-08-20은 2일 차이이므로 결과는 2입니다.
  • 문제 3 정답: C
    • 해설: SYSDATE + 2는 2일 뒤를 의미하므로 2025년 8월 24일이 됩니다. TO_CHAR 함수로 YYYY-MM-DD 형식의 문자열로 변환됩니다.
profile
Hello world!

0개의 댓글