在 SQL 中,可以使用不同的函數(shù)將 Unix 時間戳轉(zhuǎn)換為可讀的日期和時間格式,以及執(zhí)行相反的轉(zhuǎn)換。以下是一些常用的技巧:
從 Unix 時間戳到日期和時間
對于 MySQL,使用 FROM_UNIXTIME()
函數(shù):
SELECT FROM_UNIXTIME(1633024800) as date;
對于 PostgreSQL,使用 to_timestamp()
函數(shù):
SELECT to_timestamp(1633024800) as date;
對于 SQL Server,使用 DATEADD()
函數(shù):
SELECT DATEADD(SECOND, 1633024800, '1970-01-01 00:00:00') as date;
對于 Oracle,使用 TO_DATE()
函數(shù)與 TRUNC()
函數(shù):
SELECT TO_DATE('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') + 1633024800 / 86400 as date;
從日期和時間到 Unix 時間戳
對于 MySQL,使用 UNIX_TIMESTAMP()
函數(shù):
SELECT UNIX_TIMESTAMP('2021-09-20 12:00:00') as timestamp;
對于 PostgreSQL,使用 EXTRACT(EPOCH FROM )
函數(shù):
SELECT EXTRACT(EPOCH FROM '2021-09-20 12:00:00'::timestamp) as timestamp;
對于 SQL Server,使用 DATEDIFF()
函數(shù):
SELECT DATEDIFF(SECOND, '1970-01-01 00:00:00', '2021-09-20 12:00:00') as timestamp;
對于 Oracle,使用 TO_DATE()
函數(shù)與 EXTRACT()
函數(shù):
SELECT (TO_DATE('2021-09-20 12:00:00', 'YYYY-MM-DD HH24:MI:SS') - TO_DATE('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) * 86400 as timestamp;
這些技巧可以幫助你在不同的數(shù)據(jù)庫系統(tǒng)中執(zhí)行 Unix 時間戳與日期時間之間的轉(zhuǎn)換。注意,根據(jù)你所使用的數(shù)據(jù)庫系統(tǒng),函數(shù)名稱和語法可能略有不同。