| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
													Tags
													
											
												
												- 스프링부트
- MSA
- 구글로그인
- 오라클
- 자바 스트림
- Leetcode
- 스프링부트 채팅서버
- SQL
- pygame
- 프로그래머스
- oracle
- 스프링시큐리티
- oauth2
- 자바스크립트
- SQL 문제풀이
- 코틀린 클래스
- SAP ABAP
- mysql
- python
- js
- springboot
- LeetCode SQL
- spring boot
- java8
- SQL프로그래머스
- javascript
- sap ERP
- Spring
- 스프링
- kotlin 클래스
													Archives
													
											
												
												- Today
- Total
웅겹살의 프로그래밍 삼매경
[SQL] 프로그래머스 DATETIME에서 DATE로 형변환 본문
https://programmers.co.kr/learn/courses/30/lessons/59414?language=mysql
코딩테스트 연습 - DATETIME에서 DATE로 형 변환
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr

1) 오라클 ORACLE
정답
SELECT
    ANIMAL_ID
    ,NAME
    ,TO_CHAR(DATETIME, 'YYYY-MM-DD') AS 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_IDTO_CHAR 날짜 변환 포맷
| 포맷 | 설명 | 사용 예 | 
| AM, A.M. | 오전 | TO_CHAR(SYSDATE, ‘AM’) → 오전 | 
| PM, P.M. | 오후 | TO_CHAR(SYSDATE, ‘PM’) → 오후 | 
| YYYY, YYY, YY, Y | 연도 | TO_CHAR(SYSDATE, ‘YYYY’) → 2014 | 
| MONTH, MON | 월 | TO_CHAR(SYSDATE, ‘MONTH’) → 2월 | 
| MM | 01~12 형태의 월 | TO_CHAR(SYSDATE, ‘MM’) → 02 | 
| D | 주중의 일을 1~7로 | TO_CHAR(SYSDATE, ‘D’) → 2 | 
| DAY | 주중 일을 요일로 표시 | TO_CHAR(SYSDATE, ‘DAY’) → 월요일 | 
| DD | 일을 01~31 형태로 표시 | TO_CHAR(SYSDATE, ‘DD’) → 01 | 
| DDD | 일을 001~365 형태로 | TO_CHAR(SYSDATE, ‘DDD’) → 041 | 
| DL | 현재 일을 요일까지 표시 | TO_CHAR(SYSDATE, ‘DL’) → 2014년 2월 10일 월요일 | 
| HH, HH12 | 시간을 01~12시 형태로 | TO_CHAR(SYSDATE, ‘HH’) → 04 | 
| HH24 | 시간을 01~23시 형태로 | TO_CHAR(SYSDATE, ‘HH24’) → 16 | 
| MI | 분을 00~59분 형태로 | TO_CHAR(SYSDATE, ‘MI’) → 56 | 
| SS | 초를 01~59초 형태로 | TO_CHAR(SYSDATE, ‘SS’) → 33 | 
| FF | 밀리초(milliseconds) | TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF') | 
| WW | 주를 01~53주 형태로 | TO_CHAR(SYSDATE, ‘WW’) → 06 | 
TO_CHAR 숫자 변환 포맷
| 포맷 | 설명 | 사용 예 | 
| , (콤마) | 콤마로 표시 | TO_CHAR(123456, ‘999,999’) → 123,456 | 
| . (소수점) | 소수점 표시 | TO_CHAR(123456.4, ‘999,999.9’) → 123,456.4 | 
| 9 | 한 자리 숫자, 실제 값보다 크거나 같게 명시 | TO_CHAR(123456, ‘999,999’) → 123,456 | 
| PR | 음수일 때 < >로 표시 | TO_CHAR(-123, ‘999PR’) → <123> | 
| RN, rn | 로마 숫자로 표시 | TO_CHAR(123, ‘RN’)→CXXIII | 
| S | 양수이면 +, 음수이면 - 표시 | TO_CHAR(123, ‘S999’) → +123 | 
2) MYSQL
정답
SELECT
    ANIMAL_ID
    ,NAME
    ,DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_IDMySQL DATE_FORMAT
Syntax:
DATE_FORMAT(날짜, 포맷)
- 날짜를 특정 포맷의 문자로 변환하는 함수
- 첫 번째 매개변수로 날짜를, 두 번째 매개변수로 포맷을 지정한다.
DATE_FORMAT 포맷 정리
| 포맷 | 설명 | 
| %a | 일(Sun ~ Sat) | 
| %b | 월(Jan ~ Dec) | 
| %c | 월(0 ~ 12) | 
| %D | 일(1st, 2nd, 3rd, ...) | 
| %d | 일(01 ~ 31) | 
| %e | 일(0 ~ 31) | 
| %f | Microseconds (000000 to 999999) | 
| %H | 시간(00 ~ 23) | 
| %h | 시간(00 ~ 12) | 
| %I | 시간(00 ~ 12) | 
| %i | 분(00 ~ 59) | 
| %j | Day of the year (001 to 366) | 
| %k | 시간(0 ~ 23) | 
| %l | 시간(1 ~ 12) | 
| %M | 월(January ~ December) | 
| %m | 월(00 ~ 12) | 
| %p | AM or PM | 
| %r | 시간(12시)을 hh:mm:ss AM/PM 형식으로 | 
| %S | 초(00 ~ 59) | 
| %s | 초(00 ~ 59) | 
| %T | 시간(24시)을 hh:mm:ss 형식으로 | 
| %U | Week where Sunday is the first day of the week (00 ~ 53) | 
| %u | Week where Monday is the first day of the week (00 ~ 53) | 
| %V | Week where Sunday is the first day of the week (01 ~ 53). Used with %X | 
| %v | Week where Monday is the first day of the week (01 ~ 53). Used with %x | 
| %W | 일(Sunday ~ Saturday) | 
| %w | Day of the week where Sunday=0 and Saturday=6 | 
| %X | Year for the week where Sunday is the first day of the week. Used with %V | 
| %x | Year for the week where Monday is the first day of the week. Used with %v | 
| %Y | 연도(4자리) | 
| %y | 연도(2자리) | 
TO_CHAR & DATE_FORMAT 포맷 매핑
Oracle의 TO_CHAR 함수를 MySQL의 DATE_FORMAT으로 변경할 때 대응되는 포맷을 표로 정리한 것이다.
| 결과 | Oracle TO_CHAR | MySQL DATE_FORMAT | 
| 연도(4자리) | YYYY | %Y | 
| 연도(2자리) | YY | %y | 
| 연도(4자리, YYYY와 동일) | RRRR | %Y | 
| 연도(2자리, YY와 동일) | RR | %y | 
| 월(1~12) | MM | %m | 
| 월(Jan~Dec) | MON | %b | 
| 월(January~December) | MONTH | %M | 
| 일(1~31) | DD | %d | 
| 일(Sun~Sat) | DY | %a | 
| 시간(0~23) | HH24 | %H | 
| 시간(1~12) | HH 또는 HH12 | %h | 
| 분(0~59) | MI | %i | 
| 초(0~59) | SS | %s | 
References
'SQL > SQL 문제풀이' 카테고리의 다른 글
| [SQL] 프로그래머스 입양 시각 구하기(1) (2) | 2021.07.04 | 
|---|---|
| [SQL] 프로그래머스 오랜 기간 보호한 동물(2) (0) | 2021.01.28 | 
| [SQL] 프로그래머스 JOIN 있었는데요 없었습니다 (1) | 2021.01.27 | 
| [SQL] 프로그래머스 중복 제거하기 (0) | 2021.01.27 | 
| [SQL] 프로그래머스 NULL 처리하기 (0) | 2021.01.25 | 
			  Comments
			
		
	
               
           
					
					
					
					
					
					
				 
								 
								 
								