2013-04-02 34 views
0

我的表中有一個表示記錄生成時間的時間戳值。如何從當前時間和時間戳中找出以秒,小時,分鐘爲單位的時間差在mysql中

我想知道使用MySQL生成記錄之前的秒數,小時數,天數。換句話說,我們如何才能找出以秒,小時,天的格式與當前時間的差異和MySQL中的時間戳值?

+0

你有什麼企圖?作爲參考:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html –

+0

我試過這TIMEDIFF(CURRENT_TIMESTAMP,added_on),但沒有結果 – JLM

+0

最好的猜測是你的「added_on」列不是'timestamp'類型? – th3byrdm4n

回答

0

試試這個

SELECT TIMESTAMPDIFF (SECOND, CURDATE(), your_timestamp_field) from your_table; 

欲瞭解更多信息請參閱date and time functions

+0

感謝您的時間。我試過這個,但沒有結果:( – JLM

+0

它適用於日期時間型 –

+0

它也適用於時間戳類型。請描述您的表架構並在表中顯示一些記錄 –

-1
> SELECT A.CALLSIGN,TO_CHAR(A.TIMEOFMSGRCVD ,'YYYYMMDDHH24MISS') 
> time_tmo,TO_CHAR(b.TIMEOFMSGRCVD ,'YYYYMMDDHH24MISS') time_arrival, 
> floor(((b.TIMEOFMSGRCVD-a.TIMEOFMSGRCVD)*24*60*60)/3600) 
>   HOURS, 
>   floor((((b.TIMEOFMSGRCVD-a.TIMEOFMSGRCVD)*24*60*60) - 
>   floor(((b.TIMEOFMSGRCVD-a.TIMEOFMSGRCVD)*24*60*60)/3600)*3600)/60) 
>   MINUTES, 
>   round((((b.TIMEOFMSGRCVD-a.TIMEOFMSGRCVD)*24*60*60) - 
>   floor(((b.TIMEOFMSGRCVD-a.TIMEOFMSGRCVD)*24*60*60)/3600)*3600 - 
>   (floor((((b.TIMEOFMSGRCVD-a.TIMEOFMSGRCVD)*24*60*60) - 
>   floor(((b.TIMEOFMSGRCVD-a.TIMEOFMSGRCVD)*24*60*60)/3600)*3600)/60)*60) 
>)) 
>   SECONDS FROM (SELECT * FROM ATC.ATCMSG WHERE FLIGHTDATE=TO_CHAR(SYSDATE-1,'MMDDYY') AND EVENTTYPE='DES') a, (SELECT 
> * FROM ATC.ATCMSG WHERE FLIGHTDATE=TO_CHAR(SYSDATE-1,'MMDDYY') AND EVENTTYPE='ARR') b WHERE A.CALLSIGN=B.CALLSIGN ORDER BY 4,5,6; 
相關問題