我对从epoch中提取时间(小时、分钟和秒)的方法很感兴趣。例如:
user_id | seconds
------------+------------
53115 | 1461224491
53115 | 1461224492
53115 | 1461224493
53115 | 1461224494
53115 | 1461224495
53115 | 1461224496
53115 | 1461224497
53115 | 1461224498
53115 | 1461224499
53115 | 1461224500
对此:
user_id | seconds | login_time
------------+------------+------------------------
53115 | 1461224491 | 08:41:31
53115 | 1461224492 | 08:41:32
53115 | 1461224493 | 08:41:33
53115 | 1461224494 | 08:41:34
53115 | 1461224495 | 08:41:35
53115 | 1461224496 | 08:41:36
53115 | 1461224497 | 08:41:37
53115 | 1461224498 | 08:41:38
53115 | 1461224499 | 08:41:39
53115 | 1461224500 | 08:41:40
(10 rows)
3条答案
按热度按时间irlmq6kh1#
有一个内置函数可以将unixtime转换为timestamp。然后按时间转换以删除日期部分:
ndh0cuux2#
如果您使用的是mysql,请使用:
b4lqfgs43#
日期函数在不同的rdbms中有所不同,因此请阅读postgresql日期函数。
我曾经为unix时间(自1970年1月1日00:00:00 gmt起的秒数)编写了一个存储过程,该时间在1970年之前开始,即前一个闰日的第二天。我首先取了4年的增量(4x365+1天),然后年(365天),然后月从三月到一月,使用字符串作为整数数组(“31303130313031303131”),所以剩下的日子(86400秒)是二月,剩下的是时间。我忘了如何调整时区,也忘了如何回到1968年3月1日00:00:00,有些事情留给了学生。在一个周期的末尾有闰日意味着你可以忽略它们。如果2月还有29天,那就这样吧——没问题!
当地球变慢的时候那些烦人的秒就留给天文钟迷了!
幸运的是,从1970年到2099年,每4年有一个闰日。要超过1901-2099年,你需要担心mod 100不是leap而是mod 400是leap。