首页 > 解决方案 > 将长(数字)文本数据类型(具有空白值)转换为日期

问题描述

我无法将 HubSpot UNIX 时间戳转换为日期。时间戳存储为文本值。

在此处输入图像描述

值如下所示:

1549324800000

我的逻辑是首先将数字转换为bigint,然后使用以下方法将其转换为日期:

TO_CHAR(TO_TIMESTAMP(properties__vape_station__value)), 'DD/MM/YYYY')

在 PostgreSQL 11 中实现将文本类型的 UNIX 时间戳转换为日期的最佳方法是什么。

标签: postgresql

解决方案


您可以将该列中的值转换为 bigint,然后使用to_timestamp.

但显然,如果不存在值,该列也存储空字符串而不是 NULL 值,因此您需要考虑到这一点:

to_timestamp(nullif(trim(properties__vape_station__value),'')::bigint/1000)

但是,如果该列中存储的不是数字,这仍然会失败。


推荐阅读