如何将 bigint 转换为日期和时间格式,我有两列,一列是“状态更改日期”,另一列是“状态更改时间”。我必须合并两列并以时间戳格式显示。请在这里提出解决方案。预先感谢。
我尝试使用 Unixtime 但没有成功。
我尝试使用 Unixtime 但没有成功。
因为您的数据看起来不像Unix时间,它看起来像是出于某种原因存储在bigint中的格式化日期时间。你可以将其相应地变成
varchar
和 parse:
-- sample data
WITH dataset(state_change_date, state_change_time) as (
VALUES (20220801, 355),
(20220801, 2355)
)
-- query
SELECT date_parse(cast(state_change_date as varchar) || lpad(cast(state_change_time as varchar), 4 , '0'), '%Y%m%d%k%i')
FROM dataset
输出:
_col0 |
---|
2022-08-01 03:55:00.000 |
2022-08-01 23:55:00.000 |
看到你的问题标签Presto,但似乎你正在使用Trino(fmr.PrestoSQL)。只是想澄清 Trino 是 PrestoDB 的一个分支。 Presto 的主要开发是 PrestoDB,您可以在这里下载并安装最新版本:https://prestodb.io/download.html.
希望这有助于澄清,主要区别是: