问题描述
我正在使用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' + $1 / 1000 * interval '1 second'
$$ language sql;