[mysql] MySQL은 n 일 전 날짜를 타임 스탬프로 가져옵니다.

MySQL에서 30 일 전과 같은 타임 스탬프를 어떻게 얻을 수 있습니까?

다음과 같은 것 :

select now() - 30

결과는 타임 스탬프를 반환해야합니다.



답변

DATE_SUB는 원하는 내용에 따라 일부 작업을 수행합니다.

mysql> SELECT DATE_SUB(NOW(), INTERVAL 30 day);
2009-06-07 21:55:09

mysql> SELECT TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
2009-06-07 21:55:09

mysql> SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
1244433347


답변

다음을 사용할 수 있습니다.

SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_));

유닉스 타임 스탬프 또는 :

SELECT addtime(now(),maketime(_,_,_));

표준 MySQL 날짜 형식의 경우.


답변

타임 스탬프에서 음수 시간이 필요한 경우

mysql>SELECT now( ) , FROM_UNIXTIME( 1364814799 ) , HOUR( TIMEDIFF( now( ) , FROM_UNIXTIME( 1364814799 ) ) ) , TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) ) 
2013-06-19 22:44:15     2013-04-01 14:13:19     1904    -1904

TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) ) 

x> this_timestamp를 사용해야하는 경우 음수 및 양수 값을 반환합니다.

하지만 이것은

HOUR( TIMEDIFF( now() , FROM_UNIXTIME( 1364814799 ) ) )

긍정적 인 시간 만 반환합니다.


답변