2011-12-02 2 views
2

데이터베이스에 모든 날짜를 varchar(10)으로 저장 했으므로 이제이를 TIMESTAMP로 변환하려고합니다. 내 모든 날짜 formart 10 디지털 수 있으며, BTWmysql varchar (10)을 TIMESTAMP로 변환하는 방법?

#1292 - Incorrect datetime value: '1320534000' for column 'date' at row 1 

:

나는 SQL을

ALTER TABLE `demo3` CHANGE `date` `date` TIMESTAMP NOT NULL 

이 경고를 실행합니다.

+1

날짜를 나타내는 문자열 형식은 무엇입니까? –

+0

@Anthony Grist,'1320534000' 그들은'strtotime()'에서 전송됩니다 –

+0

@fishman 당신이 컨버스의 팬이라는 것을 몰랐습니다 : p – ajreal

답변

2

먼저 시간 소인을 datetime으로 변경 한 다음 열 유형을 변경할 수 있습니다.

ALTER TABLE `demo3` MODIFY COLUMN `date` varchar(25); 

UPDATE `demo3` SET `date`= FROM_UNIXTIME(`date`); 

ALTER TABLE `demo3` CHANGE `date` `date` TIMESTAMP NOT NULL 
+0

을 제공해주세요. 로 변환합니다. 나는 나중에 이것을 시도 할 것이다 - 고마워! – dash

0

먼저 유닉스 타임 스탬프 형식을 FROM_UNIXTIME 함수로 변환해야합니다.

1

원하는 유형의 새 열을 추가 한 다음 테이블을 업데이트하고 업데이트 구문의 각 행에 대해 숫자로 문자열을 변환해야합니다.

그래서

가 그런 비슷한을 실행

기본값은 NULL 새 타임 스탬프 열을 추가

UPDATE demo3 SET new_timestamp = CONVERT(date, signed) 

(당신은 다시 유닉스 타임 스탬프와에서 변환 시도해야 할 수도 있습니다 - http://kitt.hodsden.org/mysql/converting_to_mysqls_timestamp_from_int11 참조)

정수를 타임 스탬프 열로 푸시해야하는 항목.

그런 다음 원래 날짜 열을 제거하고 타임 스탬프 열의 이름을 변경하십시오.

관련 문제