select month, date_format(month, '%Y-%m') as month2
from tb_example
위처럼 쿼리를 작성했는데,
month | month2 |
201501 | [null] |
201501 | [null] |
201501 | [null] |
Incorrect datetime value: '201501'
Incorrect datetime value: '201501'
Incorrect datetime value: '201501'
결과가 저렇게 나오면서, 에러 메세지가 뜨는데, 혹시 왜 그런지 아시나요?
제가 원하는 결과는 이거였습니다...
month | month2 |
201501 | 2015-01 |
201501 | 2015-01 |
201501 | 2015-01 |
date_format 함수는 날짜를 문자포멧으로 바꾸는 함수입니다.
날짜가 입력되어야 할 자리에 날짜가 아닌게 입력되어서 나는 에러입니다.
연월만 있는 것은 날짜가 아니죠. 일자를 붙여서 연월일을 완성해 주시면 됩니다.
CONCAT(month, '01') 방식은 기존 질문에 대한 답변에 수차례 사용된 방법입니다.
WITH tb_example AS ( SELECT '201501' month ) SELECT month , DATE_FORMAT(CONCAT(month, '01'), '%Y-%m') m1 , CONCAT(SUBSTR(month, 1, 4), '-', SUBSTR(month, 5, 2)) m2 FROM tb_example ;