MySQL 時間相減得到秒數(shù)
在 MySQL 中,我們經(jīng)常會需要對兩個時間進行相減,以得到它們之間的時間差。如果要得到兩個時間之間的秒數(shù)差,應該如何處理呢?下面就來探討一下。
使用 TIMESTAMPDIFF 函數(shù)進行相減
在 MySQL 中,我們可以使用 TIMESTAMPDIFF 函數(shù)來得到兩個時間之間的時間差。
TIMESTAMPDIFF 函數(shù)有三個參數(shù),分別是時間單位、結(jié)束時間和開始時間。其中,時間單位可以是 YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE 或 SECOND 等。
如果要得到兩個時間之間的秒數(shù)差,可以使用以下語句:
SELECT TIMESTAMPDIFF(SECOND,'2019-01-01 00:00:00','2019-01-01 00:00:10');
運行該語句后,可以得到 10,即兩個時間之間的秒數(shù)差為 10 秒。
使用 UNIX_TIMESTAMP 函數(shù)進行轉(zhuǎn)換
除了使用 TIMESTAMPDIFF 函數(shù)進行相減外,我們還可以使用 UNIX_TIMESTAMP 函數(shù)將時間轉(zhuǎn)為 Unix 時間戳,然后再進行相減。
Unix 時間戳是指從 1970 年 1 月 1 日 00:00:00 UTC 到現(xiàn)在的秒數(shù),因此我們可以將兩個時間都轉(zhuǎn)為 Unix 時間戳,再求差。
假設需要求時間戳為 1559313600 和 1559313610 之間的秒數(shù)差,可以使用以下語句:
SELECT UNIX_TIMESTAMP('2019-05-31 00:00:00') as start_time, UNIX_TIMESTAMP('2019-05-31 00:00:10') as end_time,
UNIX_TIMESTAMP('2019-05-31 00:00:10') - UNIX_TIMESTAMP('2019-05-31 00:00:00') as diff;
運行該語句后,可以得到以下結(jié)果:
+------------+----------+------+ | start_time | end_time | diff | +------------+----------+------+ | 1559313600 | 1559313610 | 10 | +------------+----------+------+
在結(jié)果中,start_time 和 end_time 分別為轉(zhuǎn)換后的時間戳,diff 則是它們之間的秒數(shù)差。