문제
문제풀이
SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE,"%Y-%m-%d") AS PUBLISEHD_DATE FROM BOOK
WHERE CATEGORY = '인문'
AND YEAR(PUBLISHED_DATE) = '2021'
ORDER BY PUBLISHED_DATE ASC;
SQL함수 - 데이터포맷 변환
SQL에서 날짜와 시간 형식을 변환하거나 특정 형식으로 변환하기 위해 다양한 함수들을 사용할 수 있습니다. 데이터베이스 관리 시스템(DBMS)에 따라 사용하는 함수가 조금 다를 수 있지만, 일반적으로 사용되는 몇 가지 주요 함수들을 소개하겠습니다. MySQL, PostgreSQL, SQL Server에서 각각의 예제를 제공합니다.
MySQL
- DATE_FORMAT():
- 날짜와 시간을 지정된 형식으로 변환합니다.
sql코드 복사SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_date;- 예시: 2023-07-10 14:30:00
PostgreSQL
- TO_CHAR():
- 날짜와 시간을 지정된 형식으로 변환합니다.
sql코드 복사SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS') AS formatted_date;- 예시: 2023-07-10 14:30:00
SQL Server
- FORMAT():
- 날짜와 시간을 지정된 형식으로 변환합니다.
sql코드 복사SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS formatted_date;- 예시: 2023-07-10 14:30:00
- CONVERT():
- 날짜 형식을 다른 형식으로 변환합니다.
sql코드 복사SELECT CONVERT(VARCHAR, GETDATE(), 120) AS formatted_date;- 예시: 2023-07-10 14:30:00 (120은 yyyy-mm-dd hh:mi:ss 형식)
형식 지정 옵션
여기에서 몇 가지 형식 지정 옵션을 소개합니다.
- MySQL DATE_FORMAT() 형식 지정자:
- %Y: 4자리 연도 (예: 2023)
- %m: 2자리 월 (01-12)
- %d: 2자리 일 (01-31)
- %H: 2자리 시간 (00-23)
- %i: 2자리 분 (00-59)
- %s: 2자리 초 (00-59)
- PostgreSQL TO_CHAR() 형식 지정자:
- YYYY: 4자리 연도 (예: 2023)
- MM: 2자리 월 (01-12)
- DD: 2자리 일 (01-31)
- HH24: 24시간 형식의 시간 (00-23)
- MI: 2자리 분 (00-59)
- SS: 2자리 초 (00-59)
- SQL Server FORMAT() 형식 지정자:
- yyyy: 4자리 연도 (예: 2023)
- MM: 2자리 월 (01-12)
- dd: 2자리 일 (01-31)
- HH: 24시간 형식의 시간 (00-23)
- mm: 2자리 분 (00-59)
- ss: 2자리 초 (00-59)