首页 > 解决方案 > 在 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 函数?

谢谢。

标签: sqldatetimetimestampamazon-redshiftsql-function

解决方案


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

在 Redshift 中,你可以这样写:

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

推荐阅读