Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从历元中提取分和秒_Sql_Postgresql - Fatal编程技术网

Sql 从历元中提取分和秒

Sql 从历元中提取分和秒,sql,postgresql,Sql,Postgresql,我对从历元中提取时间(小时、分钟和秒)的方法感兴趣。例如: user_id | seconds ------------+------------ 53115 | 1461224491 53115 | 1461224492 53115 | 1461224493 53115 | 1461224494 53115 | 1461224495 53115 | 1461224496 53115 | 1461

我对从历元中提取时间(小时、分钟和秒)的方法感兴趣。例如:

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)

如果您使用的是MySQL,请使用:

SELECT DATE_FORMAT(FROM_UNIXTIME(1461224491), '%H:%i:%s');

有一个内置函数将Unixtime转换为时间戳。然后转换为时间以删除日期部分:

cast(to_timestamp(seconds) as time)

日期函数因不同的RDBMS而异,因此请阅读postgresql日期函数

我曾经为UNIX时间(自1970年1月1日00:00:00 GMT起的秒数)编写了一个存储过程,该存储过程始于1970年之前,即前一个闰日的第二天。我首先使用字符串作为整数数组(“31303130313031303131”),以4年为增量(4x365+1天),然后以年(365天)为增量,然后以3月到1月为增量,剩下几天(每年86400秒)是二月,剩下的是时间。我忘了如何调整时区,也忘了如何回到1968年3月1日00:00:00,这是留给学生的。在一个周期结束时有闰日意味着你可以忽略它们。如果二月还有29天,那就这样吧——没问题

地球变慢时增加的那些讨厌的秒数留给了天文钟迷们


幸运的是,从1970年到2099年,每4年都有一个闰日。要超过1901年到2099年,你需要担心mod 100不是leap而是mod 400是leap。

他标记了
postgresql
,如果有一个合适的时间戳,那就容易多了。UNIX纪元“时间戳”不要考虑时区。但转换为适当的时间戳将是正确的。如果结果总是需要按发布的方式查看,则需要将上述内容调整为“选择(在时区“UTC-1”的时间戳(秒)::时间”