2012-09-13 4 views
2

13000 행의 데이터베이스가 있습니다. 각 행에는 'date'열이 포함되어 있습니다 (예 : 2012-09-01 17:53:28).이 열은 TIMESTAMP가되기를 원합니다.행의 모든 ​​열을 날짜에서 시간 소인으로 변환하십시오. MySQL

'date'라는 이름의 모든 열을 모든 행의 날짜에서 타임 스탬프로 업데이트하려면 어떤 쿼리를 실행해야합니까?

감사

+1

날짜가 같은 상태로 저장되어있는 경우 (예 : **'2012-09-01 17 : 53 : 28' **),'ALTER TABLE \'tbl \'CHANGE COLUMN \ 'date \'\'date \'TIMESTAMP'. – hjpotter92

답변

0
SELECT UNIX_TIMESTAMP('2012-09-01 17:53:28'); 
0

당신은 쿼리를 수행 할 때 타임 스탬프로 값을 반환 할 UNIX_TIMESTAMP() 기능을 사용할 수 있습니다. 그래서 같이 :

mysqli_query("select UNIX_TIMESTAMP(date) as date from table"); 
+0

왜이 답변에는 mysql_query가 들어 있습니까? – tadman

+0

OP는 제목과 태그 중 하나에 있기 때문에 mysql을 사용하고있는 것처럼 보입니다. 단지 그 함수를 사용하고있는 것으로 추측합니다. – Nelson

+0

mysqli_query가 정확하도록 변경했습니다. – Nelson

2

그것은 당신이 무엇을 요구 불분명하다. 다음 데이터 유형이 있습니다 : date, time, datetimetimestamp. 그리고 UNIX_TIMESTAMP이 있는데, 1970-01-01 년 이후의 초입니다.하지만 그게 당신이 겪은 것 같지는 않습니다.

this을 읽어 보시기 바랍니다.

날짜 시간 유형 일시 부를 모두 포함 된 값에 사용된다. MySQL은 DATETIME 값을 'YYYY-MM-DD HH : MM : SS'형식으로 검색하여 표시합니다. 지원되는 범위는 '1000-01-01 00:00:00'에서 '9999-12-31 23:59:59'입니다.

TIMESTAMP 데이터 형식은 날짜와 시간 부분을 모두 포함하는 값에 사용됩니다. TIMESTAMP의 범위는 '1970-01-01 00:00:01'UTC에서 '2038-01-19 03:14:07'UTC입니다.

당신이 당신의 열 date을 변환 할

는 수행

ALTER TABLE yourTable MODIFY COLUMN yourDateColumn TIMESTAMP; 
4

그것은 ALTER TABLE 명령을 사용하여 한 유형에서 다른 유형으로 변환하는 매우 간단합니다 :

ALTER TABLE table_name CHANGE old_date new_timestamp TIMESTAMP 

이 프로세스가 걸릴 수 있습니다를 많은 양의 데이터와 다수의 인덱스가있는 경우 완료하는 것이 좋습니다.

DATETIME보다 훨씬 제한된 범위 인 이유를이 유형을 TIMESTAMP 유형으로 전환하려는 이유가 확실하지 않습니다. 차이점은 documented이며 알아 두어야 할 중요한 사항입니다.

관련 문제