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
;
감사합니다!!
연월 형태라서 안 되는 거였군요...