簡體   English   中英

MySQL將n天前的日期作為時間戳

[英]MySQL get the date n days ago as a timestamp

在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(_,_,_));

對於unix時間戳或:

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 ) ) )

將只返回正數,小時數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM