linux时间戳数值,三种数据库对unix数值型时间戳的处理

时间戳即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时间戳的方法做到垮平台性。另外借助时间戳的转换函数,可以对数据库的时间字段进行加密,增强系统的安全性和保密性。

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 :

时间戳转日期:

DATEADD(S,1490172757 + 8 * 3600,'1970-01-01 00:00:00');

日期转时间戳:

SELECTDATEDIFF(S,'1970-01-01 00:00:00', '2018-10-03 09:04:48.000') - 8 * 3600 ;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值