原创

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),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信