mysql 날짜 형식 변경 질문드립니다 0 2 1,097

by 메밀묵도토리묵 [SQL Query] mariadb dbeaver [2022.08.30 11:15:14]


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

 

by 마농 [2022.08.30 11:28:13]

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
;

 


by 메밀묵도토리묵 [2022.08.30 13:26:18]

감사합니다!!

연월 형태라서 안 되는 거였군요...

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입