2012-03-17 4 views
0

내 MySQL DB 테이블에 StartDate (varchar 유형)라는 열과 세 개의 개별 정수 열이 있습니다. 일, 월, 년.MySQL - 특정 형식으로 3 개의 열을 하나로 결합

내가 원하는 것은 일, 월 및 연도 값을 결합하여 결과 값을 dd/mm/yy 형식의 StartDate 필드에 삽입하는 것입니다 (예 : 03/07/84).

너무 어렵지는 않지만 Day와 Month 값의 대부분은 한 자리수만큼 길기 때문에 접두어를 0으로해야합니다 (예 : 1은 01, 9는 09, 11은 변경되지 않음). 주문하여 필요한 시작 날짜 형식을 충족 시키십시오.

다른 문제는 연도 필드입니다. 현재 4 자리 연도가 있으므로 StartDate 형식을 충족하기 위해 처음 2 자리를 삭제해야합니다 (예 : 1984가 84가되고 2001 년이 01이 됨).

누구든지이 작업을 수행하기 위해 필요한 절차를 수행 할 수 있습니까? 필자는 Day, Month 및 Year 열에서 먼저 작업 한 다음 올바른 형식으로 가져 와서 복사 한 다음 StartDate 열에 '/'문자를 추가해야한다고 생각합니다.

모든 도움과 도움을 미리 제공해 주셔서 감사합니다.

UPDATE `my_super_datestable` SET startdate = 
    date_format(str_to_date(concat_ws(
          '/', `day`, `month`, `year`), '%e/%c/%Y'), '%d/%m/%y'); 
+0

왜 이러는 : –

+0

@MattGibson 두 곳의 데이터를 가지고있는 것이 좋지 않기 때문에 Day, Month 및 Year 열에서 StartDate를 작성한 다음 StartDate를 종료하도록 삭제할 것입니다. StartDate 필드의 내용이 사이트의 프런트 엔드에서 사용되는 방식 때문에 MySQL DATE 형식을 사용하지 않습니다. – tcarnell

답변

0

이 쿼리를 시도? 두 곳에서 데이터를 갖는 것은 좋지 않습니다. 나오는 데이터가 올바른 형식으로 바뀌는 응용 프로그램 코드에 함수를 작성하는 것이 좋습니다. 또한 MySQL DATE 형식을 사용하지 않는 이유는 무엇입니까?
+0

그것은 훌륭합니다. 내가하려고했던 것을 완벽하게 달성했습니다. 그리고 저에게 많은 타이핑을 저장했습니다! @mantigatos 감사합니다. – tcarnell

관련 문제