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