在 SQL 中,可以使用不同的函数将 Unix 时间戳转换为可读的日期和时间格式,以及执行相反的转换。以下是一些常用的技巧:
从 Unix 时间戳到日期和时间
对于 MySQL,使用 FROM_UNIXTIME()
函数:
SELECT FROM_UNIXTIME(1633024800) as date;
对于 PostgreSQL,使用 to_timestamp()
函数:
SELECT to_timestamp(1633024800) as date;
对于 SQL Server,使用 DATEADD()
函数:
SELECT DATEADD(SECOND, 1633024800, '1970-01-01 00:00:00') as date;
对于 Oracle,使用 TO_DATE()
函数与 TRUNC()
函数:
SELECT TO_DATE('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') + 1633024800 / 86400 as date;
从日期和时间到 Unix 时间戳
对于 MySQL,使用 UNIX_TIMESTAMP()
函数:
SELECT UNIX_TIMESTAMP('2021-09-20 12:00:00') as timestamp;
对于 PostgreSQL,使用 EXTRACT(EPOCH FROM )
函数:
SELECT EXTRACT(EPOCH FROM '2021-09-20 12:00:00'::timestamp) as timestamp;
对于 SQL Server,使用 DATEDIFF()
函数:
SELECT DATEDIFF(SECOND, '1970-01-01 00:00:00', '2021-09-20 12:00:00') as timestamp;
对于 Oracle,使用 TO_DATE()
函数与 EXTRACT()
函数:
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;
这些技巧可以帮助你在不同的数据库系统中执行 Unix 时间戳与日期时间之间的转换。注意,根据你所使用的数据库系统,函数名称和语法可能略有不同。