2010-08-15 8 views
7

일정 시간이 지난 후 행이 만료되어야하는 테이블에 대한 타임 스탬프 필드를 만들어야합니다. 나는 다음과 같은 사용하는 경우 :기본값으로 에포크 시간으로 필드 만들기

`timestamp` TIMESTAMP DEFAULT NOW(), 

그것은 인간이 읽을 수있는 형식으로 시간을 표시 나는 내가 초 계산할 수 있습니다 시대의 시간을 가질 수 있다면, 그것은 훨씬 쉽게 될 것입니다. 거기에 행이 에포크 시간에 기본적으로 만들어진 현재 시간을 표시하는 필드를 만들 수있는 방법이 있습니까? 감사!

답변

6
다음과 같은 예에서와 같이, 당신의 SELECT 문에 UNIX_TIMESTAMP() 기능을 사용할 수 있습니다

:

CREATE TABLE test_tb (`timestamp` TIMESTAMP DEFAULT NOW()); 
INSERT INTO test_tb VALUES (DEFAULT); 

SELECT UNIX_TIMESTAMP(`timestamp`) epoch, `timestamp` FROM test_tb; 
+------------+---------------------+ 
| epoch  | timestamp   | 
+------------+---------------------+ 
| 1281834891 | 2010-08-15 03:14:51 | 
+------------+---------------------+ 
1 row in set (0.00 sec) 
+0

아 나는 기본적으로 그런 식으로 입력 할 수 있도록 방법을 참조하지 않습니다. 그러나 나는 그것을 'select'문장에서 사용할 수있다. 다니엘 감사합니다! 나는 SO가 허락하자마자 당신을 올바른 것으로 표시 할 것입니다. –

+1

@Ben : 사실,'TIMESTAMP' 데이터 형식은 [docs] (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-type)에 따라 날짜를 에포크 형식으로 저장합니다. -overview.html). 그러나 SELECT 문은 기본적으로 "사람이 읽을 수있는 형식"으로 값을 렌더링합니다. 'UNIX_TIMESTAMP()'함수를 사용하면이 형식이 무시됩니다. –

+0

아, 흥미 롭습니다. 감사. 도움에 감사드립니다! –

관련 문제