在数据处理时,不同的数据库有不同的方法将 Unix 时间戳转为普通时间
1)MySQL 处理方式
使用 FROM_UNIXTIME() 函数
SELECT FROM_UNIXTIME(1249488000, '%Y%m%d' )等于 20090806
SELECT FROM_UNIXTIME(1249488000, '%Y年%m月%d' ) 等于 2009年08月06
SELECT FROM_UNIXTIME(875996580) 等于 1997-10-05 04:23:00
SELECT FROM_UNIXTIME(875996580) + 0 等于19971004222300
2)SQL Server 处理方式
使用 DateAdd() 函数
DATEADD(s, Unix_timestamp, '1970-01-01 00:00:00')
SELECT DATEADD(s,1249488000, '1970-01-01 00:00:00') 等于 2009-08-05 16:00:00
注:其中 s 表示秒,Unix_timestamp 表示 Unix时间戳
3)Oracle 处理方式
因为Oracle中没有专门处理 Unix 时间戳的函数,所以可以使用以下方法
代码处理:
SELECT Unix_timestamp / (60 * 60 * 24) +TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
注:Unix_timestamp 表示 Unix 时间戳
SELECT 1249488000/ (60 * 60 * 24) +TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL 等于 2009-08-06 00:00:00
注:上述的时间返回值类型为date
函数处理:
可在数据库新建函数,之后再遇到 Unix 时间戳时,无需进行上述的SQL进行处理