TO_CHAR: 날짜를 문자열로 변환.SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM DUAL;TO_DATE: 문자열을 날짜로 변환.SELECT TO_DATE('2025-01-06 13:30:00', 'YYYY-MM-DD HH24:MI:SS') AS date_value FROM DUAL;FORMAT: 날짜를 문자열로 변환.SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS formatted_date;CAST 및 CONVERT: 문자열을 날짜로 변환.SELECT CAST('2025-01-06 13:30:00' AS DATETIME) AS date_value;| 요구사항 | Oracle | MS SQL Server |
|---|---|---|
| YYYY-MM-DD | TO_CHAR(SYSDATE, 'YYYY-MM-DD') | FORMAT(GETDATE(), 'yyyy-MM-dd') 또는 CONVERT(VARCHAR, GETDATE(), 23) |
| YYYY/MM/DD | TO_CHAR(SYSDATE, 'YYYY/MM/DD') | FORMAT(GETDATE(), 'yyyy/MM/dd') 또는 CONVERT(VARCHAR, GETDATE(), 111) |
| MM-DD-YYYY | TO_CHAR(SYSDATE, 'MM-DD-YYYY') | FORMAT(GETDATE(), 'MM-dd-yyyy') 또는 CONVERT(VARCHAR, GETDATE(), 101) |
| DD-Mon-YYYY | TO_CHAR(SYSDATE, 'DD-Mon-YYYY') | FORMAT(GETDATE(), 'dd-MMM-yyyy') |
| HH24:MI:SS | TO_CHAR(SYSDATE, 'HH24:MI:SS') | FORMAT(GETDATE(), 'HH:mm:ss') |
| MM/DD/YYYY hh:mm:ss AM/PM | TO_CHAR(SYSDATE, 'MM/DD/YYYY HH:MI:SS AM') | FORMAT(GETDATE(), 'MM/dd/yyyy hh:mm:ss tt') |
EXTRACT 사용.SELECT EXTRACT(YEAR FROM SYSDATE) AS year, EXTRACT(MONTH FROM SYSDATE) AS month, EXTRACT(DAY FROM SYSDATE) AS day FROM DUAL;DATEPART 및 YEAR, MONTH, DAY 사용.SELECT DATEPART(YEAR, GETDATE()) AS year, DATEPART(MONTH, GETDATE()) AS month, DATEPART(DAY, GETDATE()) AS day;TO_DATE 사용.SELECT TO_DATE('2025-01-06', 'YYYY-MM-DD') AS date_value FROM DUAL;CAST 및 CONVERT 사용.SELECT CAST('2025-01-06' AS DATE) AS date_value;
SELECT CONVERT(DATE, '2025-01-06', 23) AS date_value;+ 연산자로 날짜 계산.SELECT SYSDATE + 7 AS future_date, SYSDATE - 30 AS past_date FROM DUAL;DATEADD 함수 사용.SELECT DATEADD(DAY, 7, GETDATE()) AS future_date, DATEADD(DAY, -30, GETDATE()) AS past_date;SELECT * FROM employees WHERE hire_date > TO_DATE('2025-01-01', 'YYYY-MM-DD');SELECT * FROM employees WHERE hire_date > CAST('2025-01-01' AS DATE);CONVERT 스타일 코드 활용.| 코드 | 출력 포맷 | 예시 |
|---|---|---|
| 101 | MM/DD/YYYY | 01/06/2025 |
| 103 | DD/MM/YYYY | 06/01/2025 |
| 110 | MM-DD-YYYY | 01-06-2025 |
| 111 | YYYY/MM/DD | 2025/01/06 |
| 120 | YYYY-MM-DD HH:MI:SS | 2025-01-06 13:30:00 |
| 23 | YYYY-MM-DD | 2025-01-06 |
SELECT CONVERT(VARCHAR, GETDATE(), 103) AS formatted_date; -- DD/MM/YYYY
TO_CHAR 사용.SELECT TO_CHAR(SYSDATE, 'DAY') AS day_name, TO_CHAR(SYSDATE, 'MONTH') AS month_name FROM DUAL;DATENAME 사용.SELECT DATENAME(WEEKDAY, GETDATE()) AS day_name, DATENAME(MONTH, GETDATE()) AS mon eㅏth_name;-- 코드를 입력하세요
SELECT B.BOOK_ID, A.AUTHOR_NAME, TO_CHAR(B.PUBLISHED_DATE, 'YYYY-MM-DD')
FROM BOOK B
INNER JOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE B.CATEGORY = '경제'
ORDER BY B.PUBLISHED_DATE ASC;
-- 코드를 입력하세요
SELECT B.BOOK_ID, A.AUTHOR_NAME, FORMAT(B.PUBLISHED_DATE, 'yyyy-MM-dd')
FROM BOOK B
INNER JOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE B.CATEGORY = '경제'
ORDER BY B.PUBLISHED_DATE ASC;