原创

mysql 数据库unix时间戳与日期互相转化方法

        Unix时间戳(Unix timestamp)是自1970年1月1日(00:00:00 GMT)以来的秒数,它也被称为 Unix 时间戳(Unix Timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。


1、mysql时间戳限制范围在1970~2038年之间,超出范围时间将会溢出得到结果是null,验证如下:

获取1970年日期,SQL语句如下:

select from_unixtime(0);

结果如下:

1970-01-01 08:00:00

获取2038年最大日期,SQL语句如下:

select from_unixtime(2147483647);

结果如下:

2038-01-19 11:14:07

获取超出2038年日期时,结果会为NULL,SQL语句如下:

select from_unixtime(2147483648);

结果如下:

结果为NULL


2、from_unixtime() 时间戳转换为日期,使用案例如下:

select from_unixtime(1439382126);

结果如下:

2015-08-12 20:22:06


3、unix_timestamp() 日期转换为时间戳

select unix_timestamp('2015-08-12 20:22:06');

结果如下:

1439382126


4、实际应用中经常遇到计算同一用户登录时间与退出时间的活跃秒数(分钟、小时等),下面是获取毫秒数,具体SQL语句如下:

select sum(unix_timestamp(endTime)-unix_timestamp(startTime)) from user group by userId

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

相关推荐

评论

分享:

支付宝

微信