在 Amazon Redshift 中将纪元转换为时间戳的函数

Function to convert epoch to timestamp in Amazon Redshift

我在 Amazon Redshift 数据库上工作,我有自纪元以来的毫秒数。我想将其转换为时间戳,并编写我在另一个线程上找到的查询

SELECT TIMESTAMP 'epoch' + column_with_time_in_ms/1000 *INTERVAL '1 second'
FROM table_name LIMIT 1000;

给我 YYYY-MM-DD 格式的结果 HH:MM:SS。

我的问题是: 如何在 Redshift 中编写一个 SQL 函数,该函数采用以毫秒为单位的整数参数并进行此转换?

谢谢。

您似乎需要一个包装转换代码的标量 UDF。

在 Redshift 中,您可以这样写:

create function ms_epoch_to_ts(int)
    returns timestamp
    immutable
as $$
    select timestamp 'epoch' +  / 1000 * interval '1 second'
$$ language sql;