【问题标题】:How to convert UNIX Epoch to date in Snowflake如何在 Snowflake 中将 UNIX Epoch 转换为日期
【发布时间】:2021-12-29 03:20:05
【问题描述】:

我的表 INV_STOCK_TIME 有 4000 行,其中包含雪花中的 unix 纪元数据。该数据需要转换为日期。这是示例数据,所需的输出应在 2 列中,如下所示

STOCK_RAWTIME
1617772221333
1616217315003
1601376748863

STOCK_RAWTIME STOCK_DATE    
1617772221333 2021-04-07
1616217315003 2021-03-20
1601376748863 2020-09-29

我可以使用以下任一命令转换列中的值。

select to_char(to_timestamp_tz(1617772221333,3),'YYYY-MM-DD') from dual;
OR
SELECT to_char(dateadd('ms',timestamp_col,'1970-01-01'),'YYYY-MM-DD') from (select 1617772221333 as timestamp_col) as timetest;

我想传递 column1 STOCK_RAWTIME 的值(unix 纪元值) 填充第 2 列 STOCK_DATE。我无法传递值列表来转换 column1 记录并出现以下错误

Format argument for function 'TO_TIMESTAMP_TZ' needs to be a string

【问题讨论】:

  • 你的字段STOCK_RAWTIME的数据类型是什么,你是用换行符还是空格来存储数据

标签: snowflake-cloud-data-platform


【解决方案1】:

我相信您可以通过以下方式获得此要求:

SELECT STOCK_RAWTIME as STOCK_RAWTIME, to_date(STOCK_RAWTIME)AS STOCK_DATE FROM (select STOCK_RAWTIME from INV_STOCK_TIME);

【讨论】:

    【解决方案2】:

    在雪花中使用此步骤解决了 to_date 或 to_timestamp 工作正常:

     alter table inv_stock_time add column stock_date date;
     update inv_stock_time set stock_date=to_date(STOCK_RAWTIME);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2014-06-10
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 2017-03-23
      相关资源
      最近更新 更多