将 Unix 时间戳转换为时间码?

Posted

技术标签:

【中文标题】将 Unix 时间戳转换为时间码?【英文标题】:Converting Unix Timestamp into a time code? 【发布时间】:2018-04-05 18:00:28 【问题描述】:

我正在使用 Athena Redshift SQL 编写查询

我有两个不同的表,我需要在其中加入两列:unix_timestamptimestamp_code

unix_timestamp 存储为 string,看起来像这样:2018-04-01T10:05:52.047Z

timestamp_codestring 看起来像这样:1514564885

我希望将unix_timestamp 转换为`timestamp_code 当前的格式。

我该怎么做呢?

【问题讨论】:

请问您查询的是 Athena 还是 Redshift? 【参考方案1】:

转换为纪元:

SELECT EXTRACT(EPOCH FROM '2018-04-01T10:05:52.047Z'::TIMESTAMP);
-- date_part
--------------
-- 1522577152 

从纪元转换为时间戳

SELECT '1970-01-01'::TIMESTAMP + 1522577152 * INTERVAL '1 sec';
--      ?column?
-----------------------
-- 2018-04-01 10:05:52

https://docs.aws.amazon.com/redshift/latest/dg/r_EXTRACT_function.html https://docs.aws.amazon.com/redshift/latest/dg/r_Dateparts_for_datetime_functions.html

【讨论】:

以上是关于将 Unix 时间戳转换为时间码?的主要内容,如果未能解决你的问题,请参考以下文章

php怎么将指定日期转换为时间戳?

Hive/SparkSQL:如何将 Unix 时间戳转换为时间戳(不是字符串)?

C# Unix时间戳转换为时间

php怎么将指定日期转换为时间戳

linux怎么将时间戳转换为时间

linux怎么将时间戳转换为时间