三种数据库对unix数值型时间戳的处理
UNIX时间戳的0按照ISO
时间戳即unix时间戳:Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。 UNIX时间戳的0按照ISO 8601规范为:1970-01-01T00:00:00Z.一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题或Y2038。三种数据库都可以对数值型时间戳进行互相转换。 为什么要使用unix时间戳: 在现在的系统中经常遇到跨数据库的应用开发,在数据库系统中不同的数据库对与时间类型却有不同解释,比如ORACLE的date和MYSQL里面的date就不能直接兼容转换,数据方面还可以使用数据迁移工具进行转换, 为了实现垮平台在应用系统中记录时间的时候我们就可以使用记录UNIX时间戳的方法做到垮平台性。另外借助时间戳的转换函数unix数据库,可以对数据库的时间字段进行加密,增强系统的安全性和保密性。 oracle: 数字时间戳转日期: (to_date('19700101','yyyymmdd') +in_number/86400 +to_number(substr(tz_offset(sessiontimezone),1,3))/24); 日期转数字时间戳: ((in_date-to_date('19700101','yyyymmdd'))*86400- to_number(substr(tz_offset(sessiontimezone),1,3))*3600) mysql: 时间戳转日期:from_unixtime(1490172757); 日期转时间戳:UNIX_TIMESTAMP(datetime); sqlserver : (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |