MySQL數據庫中的tounixtime函數是將任意日期或時間轉換為UNIX時間戳的函數。UNIX時間戳是指從1970年1月1日00:00:00 UTC到指定日期或時間之間的秒數,它是一種廣泛使用的時間表示方式。
SELECT tounixtime('2021-04-30 12:34:56'); -- 輸出:1619770496
tounixtime函數接受一個日期或時間參數,可以是一個時間戳、日期字面量、時間字面量、DATETIME值等。它將該參數轉換為UNIX時間戳并返回。
SELECT tounixtime('2021-05-01'), tounixtime('2021-05-01 00:00:00'), tounixtime('2021-05-01 12:34:56'), tounixtime(now()); -- 輸出:1619827200, 1619827200, 1619871296, 1619880324
在上面的例子中,我們分別將指定的日期或時間轉換為UNIX時間戳,并輸出結果。需要注意的是,tounixtime函數忽略參數的時區信息,將其視為當前會話時區。
tounixtime函數還有一個可選的第二個參數,用于指定UNIX時間戳的數據類型。它可以是UNSIGNED或SIGNED類型,默認為SIGNED類型(有符號整數)。當使用UNSIGNED類型時,范圍是0到4294967295,而使用SIGNED類型時,范圍是-2147483648到2147483647。
SELECT tounixtime('2021-05-01', UNSIGNED), tounixtime('1970-01-01', SIGNED); -- 輸出:1619827200, 0
在上面的例子中,我們分別將指定的日期轉換為UNSIGNED類型的UNIX時間戳和SIGNED類型的UNIX時間戳,并輸出結果。需要注意的是,當指定的UNIX時間戳超出指定數據類型的范圍時,tounixtime函數會返回NULL。