微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将具有日期和纪元格式值的字符串列转换为Postgresql / Tableau准备中的日期列

如何解决将具有日期和纪元格式值的字符串列转换为Postgresql / Tableau准备中的日期列

如何将具有日期和纪元格式值的字符串列转换为日期列?我正在使用Postgresql / Tableau准备环境。

Please find attached the example here

确定此查询有效:

SELECT case 
WHEN len(d.properties__renewal_date__value) > 10 
THEN (timestamp 'epoch' + CAST(NULLIF(d.properties__renewal_date__value,'') AS BIGINT)/1000 * interval '1 second')
ELSE to_date(d.properties__renewal_date__value,'DD/MM/YYYY') end as renewal_date

解决方法

这里是@AdrianKlaver的评论的编码。首先确定具有正则表达式匹配项的当前值的类型,然后进行相应的转换。

select case 
   when "renewal date" ~ '^\d+$' then to_timestamp("renewal date"::double precision)::date
   else to_date("renewal date",'dd/mm/yyyy')
 end as renewal_date
 from _table;

红移风味,历元值(以毫秒为单位):

select case 
  when "renewal date" ~ '^\d+$' then 
    ('1970-01-01'::date + ("renewal date"::double precision/1000) * '1 second'::interval)::date
  else 
    to_date("renewal date",'dd/mm/yyyy')
  end as renewal_date
  from _table;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。