MySQL将n日前的date作为时间戳
在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
我想你是在DATE_SUB之后。
你可以使用:
SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_));
对于unix时间戳或:
SELECT addtime(now(),maketime(_,_,_));
对于标准的MySQLdate格式。
如果你需要从时间戳负小时
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 ) ) )
将只返回正数,小时