【问题标题】:Converting UTC to EST - Snowflake !! Remove Z and T from the date将 UTC 转换为 EST - 雪花!!从日期中删除 Z 和 T
【发布时间】:2022-12-09 12:35:19
【问题描述】:

我需要将此文件导出到 excel,但它在时间戳中包含那些 Z 和 T。我怎样才能删除它?我确实尝试过强制转换或使用 to_date 但这没有用。这使我的 CallBgn 或 CallEnd 为“2022-08-29T09:57:18.297Z”。我希望它是“2022-08-29 09:57:18.297”

SELECT distinct      top 100  
                    b.ID as ID
                    ,convert_timezone('UTC','America/New_York',b.start_datetime_utc::timestamp) as CallBgn
                    ,convert_timezone('UTC','America/New_York',b.end_datetime_utc::timestamp)   as CallEnd
                    ,a.PNumber
From                pd_presentation.cus.cus_iss as a
left join           PD_PRESENTATION.CUS.CALL as b
on                  a.p_hk = b.p_hk
where               b.start_datetime_utc between '2022-08-28 00:00:00.000' AND '2022-09-17 23:59:59.997'
and                 a.p <> 'NOT GIVEN'

【问题讨论】:

    标签: sql datetime type-conversion snowflake-cloud-data-platform


    【解决方案1】:

    这只是一个介绍问题,所以:

    ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
    

    【讨论】:

      【解决方案2】:
      substr(to_varchar(a.CallBgn1, 'YYYY-MM-DD HH24:MI:SS.FF'),1,23)
      

      【讨论】:

        【解决方案3】:

        不确定您使用的是什么版本的 SQL,但我建议使用子字符串操作来切断不需要的字符。如果您的数据集相对较小,我还建议使用 Excel 函数而不是 SQL 函数更为方便。

        Mariadb convert_tz 函数不会像您提到的那样附加 Z 或 T。

        MariaDB [locks]> select now(),convert_tz(now(),'+00:00','+06:00');
        +---------------------+-------------------------------------+
        | now()               | convert_tz(now(),'+00:00','+06:00') |
        +---------------------+-------------------------------------+
        | 2022-09-22 16:17:09 | 2022-09-22 22:17:09                 |
        +---------------------+-------------------------------------+
        1 row in set (0.00 sec)
        

        以下使用 substr 或 left 函数将当前时间的秒数截断:

        MariaDB [locks]> select now(),substr(now(),1,16), left(now(),16);;
        +---------------------+------------------+------------------+
        | now()               | substr(now(),1,16)   | left(now(),16)   |
        +---------------------+------------------+------------------+
        | 2022-09-22 16:11:14 | 2022-09-22 16:11 | 2022-09-22 16:11 |
        +---------------------+------------------+------------------+
        1 row in set (0.00 sec)
        

        【讨论】:

          猜你喜欢
          • 2018-11-03
          • 1970-01-01
          • 1970-01-01
          • 2020-10-19
          • 1970-01-01
          • 2014-01-24
          • 2021-07-03
          • 2021-10-13
          • 1970-01-01
          相关资源
          最近更新 更多