2023. 11. 18. 03:01, 알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/131120
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH)=3 AND GENDER='W' AND TLNO IS NOT NULL
ORDER BY MEMBER_ID;
+++++++
위의 답을 찾아가는 여정에 대하여
+++++++
SELECT MEMBER_ID,
MEMBER_NAME,
GENDER,
DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH) = 3
AND TLNO IS NOT NULL
AND GENDER = 'W'
ORDER BY MEMBER_ID;
처음에 위와 같이 작성해서 제출해보니,
위와 같이 생일이 딱 요일까지만 나오는것이 아니라 시간이 껴들어가서 문제에서 요구하는 형태가 아니었음.
그래서 이 문제의 경우 GPT에 방안을 요구해서 DATE_FORMAT() 이라는 것을 알게 되어서,
DATE_FORMAT(DATE_OF_BIRTH, '%Y-%M-%D') AS FORMATTED_DATE
위와같이 변형해서 제출했음. 그랬더니 결과는
이와 같이 나옴
내가 원하는 형태의 포맷은 아니었으나, 이렇게 변하는걸 보니까 매우 재미있었음.
이번에는
DATE_FORMAT(DATE_OF_BIRTH, '%Y-%c-%e') AS FORMATTED_DATE
을 알게 되어서 위와같이 변경해서 제출했더니,
이와 같은 결과가 나왔다.
드디어 맞았구나 하고 제출했더니 틀림
자세히 보니까 1992-03-16 형태로 나와야 하는데 -3- 형태로 나와서 틀렸다는걸 알게됨.
더는 잘 모르겠어서 다른 풀이를 찾아보니,
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH)=3 AND GENDER='W' AND TLNO IS NOT NULL
ORDER BY MEMBER_ID;
을 발견함.
뭐가 다른가 보니까, 나의 경우 '%Y-%M-%D' 형태로 작성해서 대문자 M에 의해서 영어로, 대문자 D에 의해서 16th로 나왔음. 해보니까 이거 은근 재미있다. 하나하나에 따라서 내가 얻게되는 값의 포맷이 변하네.
DATE_FORMAT() 의 경우 대문자 소문자를 구분하면서, 각 대문자 소문자에 따라서 형태가 달라짐을 유의하도록 하자.
재미있었다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 LV 1. 144853 조건에 맞는 도서 리스트 출력하기 (0) | 2023.11.18 |
---|---|
프로그래머스 LV 1. 132201 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.11.18 |
프로그래머스 lv 3. 43105 정수 삼각형 c++ **다시 풀어보기** (0) | 2023.11.17 |
프로그래머스 lv 3. 42895 N으로 표현 c++ **다시 풀어보기** (0) | 2023.11.17 |
프로그래머스 lv 3. 42884 단속카메라 c++ **다시 풀어볼것** (0) | 2023.11.16 |
Comments, Trackbacks