Oracle 기준으로, 출고일(DATE, 시각 포함)이 2026년 3월… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 3회
Oracle 기준으로, 출고일(DATE, 시각 포함)이 2026년 3월인 배송만 다음 결과처럼 조회하려 한다. ( ㉠ )에 들어갈 조건으로 옳은 것은? (세션 기본 날짜 형식은 RR/MM/DD)[배송]
| 배송번호 | 출고일 | 기사명 |
|---|---|---|
| D01 | 2026-02-28 23:40 | 정우 |
| D02 | 2026-03-01 09:00 | 서진 |
| D03 | 2026-03-15 13:20 | 정우 |
| D04 | 2026-03-31 18:05 | 하린 |
| D05 | 2026-04-01 00:00 | 서진 |
| D06 | 2025-03-20 10:30 | 하린 |
SELECT 배송번호, TO_CHAR(출고일, 'YYYY-MM-DD HH24:MI') AS 출고 FROM 배송 WHERE ( ㉠ ) ORDER BY 배송번호;
[원하는 결과]
| 배송번호 | 출고 |
|---|---|
| D02 | 2026-03-01 09:00 |
| D03 | 2026-03-15 13:20 |
| D04 | 2026-03-31 18:05 |
1
TO_CHAR(출고일, 'YYYYMM') = '202603'
2
EXTRACT(MONTH FROM 출고일) = 3
3
SUBSTR(출고일, 1, 6) = '202603'
4
TRUNC(출고일) = TO_DATE('202603', 'YYYYMM')해설
TO_CHAR(출고일, 'YYYYMM')은 시각과 무관하게 연월 문자열만 만들어 비교하므로 3월 1일 09시부터 31일 18시까지의 D02·D03·D04 만 남는다.DATE 를 문자열로 비교할 때는 형식 모델을 명시해야 하며, 형식 없이 문자 함수에 넣으면 세션 기본 형식으로 암시적 형변환된다.
- TO_DATE('202603','YYYYMM') 은 3월 1일 0시라 TRUNC 결과가 같은 D02 만 나온다.
- 월만 비교하면 2025년 3월의 D06 까지 포함된다.
- 기본 형식으로 바뀐 '26/03/15' 앞 6자는 '202603' 과 같아질 수 없다.
오류나 개정된 내용이 보이면 알려주세요