postgresql - 将长(数字)文本数据类型(具有空白值)转换为日期
问题描述
我无法将 HubSpot UNIX 时间戳转换为日期。时间戳存储为文本值。
值如下所示:
1549324800000
我的逻辑是首先将数字转换为bigint,然后使用以下方法将其转换为日期:
TO_CHAR(TO_TIMESTAMP(properties__vape_station__value)), 'DD/MM/YYYY')
在 PostgreSQL 11 中实现将文本类型的 UNIX 时间戳转换为日期的最佳方法是什么。
解决方案
您可以将该列中的值转换为 bigint,然后使用to_timestamp
.
但显然,如果不存在值,该列也存储空字符串而不是 NULL 值,因此您需要考虑到这一点:
to_timestamp(nullif(trim(properties__vape_station__value),'')::bigint/1000)
但是,如果该列中存储的不是数字,这仍然会失败。
推荐阅读
- html - 使用子级覆盖父级 css 设置会给出未知的属性名称
- python - 需要帮助来理解为什么 for 循环只循环一次
- python - 尝试使用朴素贝叶斯对 3D 图像进行分类时出错
- angular - 无法绑定到“值”,因为它不是已知的属性角度组件
- python-3.x - 安装时上传的 pypi 包缺少模块
- r - 如何在 Ace 文本编辑器中添加新的语言模式?
- python - 如何在 python 的 GtkSourceView 中加载样式?
- flutter - google_maps_flutter Flutter 是否有可用的地图类型选择器?
- javascript - 如何从通过 foreach 填充的表中删除一行 - jquery
- angular - 等待Angular中的递归forkJoin