亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL:如何以秒為單位獲取兩個時間戳之間的差異

MySQL:如何以秒為單位獲取兩個時間戳之間的差異

慕仙森 2019-12-03 10:58:31
有沒有一種方法可以在MySQL中進行查詢,以秒為單位提供兩個時間戳之間的區別,還是我需要在PHP中做到這一點?如果是這樣,我將如何去做?
查看完整描述

3 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

您可以使用TIMEDIFF()和TIME_TO_SEC()函數,如下所示:


SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;

+------+

| diff |

+------+

|   60 |

+------+

1 row in set (0.00 sec)

您還可以使用其他答案中建議的@AmberUNIX_TIMESTAMP()函數:


SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') - 

       UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;

+------+

| diff |

+------+

|   60 |

+------+

1 row in set (0.00 sec)

如果您使用的是TIMESTAMP數據類型,我猜想UNIX_TIMESTAMP()解決方案會稍微快一點,因為TIMESTAMP值已經存儲為整數,代表自紀元(Source)以來的秒數。引用文檔:


在列UNIX_TIMESTAMP()上使用時TIMESTAMP,該函數直接返回內部時間戳記值,而沒有隱式的“字符串到Unix時間戳記”轉換。


請注意,TIMEDIFF() 返回數據類型為TIME。TIME值的范圍可以從“ -838:59:59”到“ 838:59:59”(大約34.96天)


查看完整回答
反對 回復 2019-12-03
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

UNIX_TIMESTAMP(ts1) - UNIX_TIMESTAMP(ts2)

如果要獲得無符號的差異,請ABS()在表達式周圍添加一個。


或者,您可以使用TIMEDIFF(ts1, ts2),然后通過將時間結果轉換為秒TIME_TO_SEC()。


查看完整回答
反對 回復 2019-12-03
  • 3 回答
  • 0 關注
  • 871 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號