은 dd.mm.yy 형식의 데이터를 YYYY-MM-DD 형식으로 변환하는 mySQL 함수가 있습니까? 예 : 03.09.13 -> 2013-09-03
SQL 날짜 형식을 변환 하시겠습니까? [dd.mm.yy부터 YYYY-MM-DD]
답변
양식 03.09.13
의 문자열 (오늘 9 월 3, 2013 년 이후), 나는 그것이 DD-MM-YY 있다고 가정합니다입니다. 당신은 STR_TO_DATE
를 사용하여 날짜로 변환 할 수 있습니다 : STR_TO_DATE
에서 올해 %y
는 ("Y"소문자)되는 것을
DATE_FORMAT(STR_TO_DATE(myVal, '%d.%m.%y'), '%Y-%m-%d')
참고 :
STR_TO_DATE(myVal, '%d.%m.%y')
은 그럼 당신은 DATE_FORMAT
를 사용하여 다시 문자열로 포맷 할 수 있습니다 %Y
(대문자 "Y")은 DATE_FORMAT
입니다. 소문자 버전은 두 자리 연도이고 대문자는 네 자리 연도입니다.
DATE_FORMAT (STR_TO_DATE (myVal, '% d. % m. % Y'), '% Y- % m- % d') Y는 대문자입니다. –
Rajavel - 입력 문자열에 2 자리 연도 ('03.09.13')가 있으므로 첫 번째 소문자'y '입니다. 두 번째 경우에는 대문자이므로 결과는 4 자리 연도 ('2013-09-03')가됩니다. –
감사합니다. –
사용
SELECT CONCAT(
'20',
SUBSTR('03.09.13', 7, 2),
'-',
SUBSTR('03.09.13', 4, 2),
'-',
SUBSTR('03.09.13', 1, 2))
바이올린 demo합니다.
자세한 내용은 해당 manual page에서 읽을 수 있습니다. 팁 : 이것이 비 datetime 필드의 변환 값인 경우 DATE/DATETIME 데이터 유형을 사용하는 것이 좋습니다. 그러나 이것은 으로 문자열 기능을 통해 날짜와 작동하는 것은 바람직하지 않습니다. 위의 멋진 트릭이 STR_TO_DATE
입니다 (이 코드는 반복하지 않음).
날짜는 내부 형식을 사용하여 저장됩니다. date_format()
함수를 사용하여 다양한 형식을 사용하여 문자열로 변환 할 수 있습니다. 특히 당신을 위해 : 귀하의 의견부터
select date_format(`date`, '%Y-%m-%d')
입력 내용이 날짜 유형입니까, 아니면 문자 그대로 '03.09.13'입니까? –
@ ppeterka66 예, 여기에 묻는 것은 아마 그 대답을 찾지 못하거나 이해하지 못했음을 의미합니다. – user2216190
@EdGibbs 문자열입니다. – user2216190