原创

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),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信