【问题标题】:I need a conversion function, from integer to date-time我需要一个转换函数,从整数到日期时间
【发布时间】:2022-01-03 04:12:55
【问题描述】:

是否有从整数(例如:54600)到日期时间格式的转换?我在医疗保健的流程图中看到整数,用于记录时间

CONVERT(varchar, DATEADD(ms, b22.meas_value * 1000, 0), 114) AS 'START TIME' : 是在 MS SQL 中工作的代码,但 SNOWFLAKE 无法识别该函数。

【问题讨论】:

  • 例如 54600 表示哪个日期和时间?

标签: datetime snowflake-cloud-data-platform utc datetime-conversion


【解决方案1】:

您可以尝试使用TO_DATE。返回值的数据类型为DATE。

语法

TO_DATE( '<integer>' )

在哪里

<integer>
An expression that evaluates to a string containing an integer, for example ‘15000000’. Depending upon the magnitude of the string, it can be interpreted as seconds, milliseconds, microseconds, or nanoseconds. 

详情或其他用法见上述链接。

【讨论】:

    【解决方案2】:

    有几种不同的方法:

    select 1637804567::varchar::date as date;
    +------------+
    | DATE       |
    |------------|
    | 2021-11-25 |
    +------------+
    
    select to_date(1637804567::varchar) as date;
    +------------+
    | DATE       |
    |------------|
    | 2021-11-25 |
    +------------+
    

    TO_DATE 或 CASTING 将要求值是字符串,因此您需要先将整数转换为字符串,然后再转换为日期。

    对于你的例子,它会像下面的雪花:

    select dateadd(ms, 54600*1000, to_date(1637804567::varchar)) as date;
    +-------------------------------+
    | DATE                          |
    |-------------------------------|
    | 2021-11-25 15:10:00.000000000 |
    +-------------------------------+
    

    【讨论】:

      【解决方案3】:

      TRY_TO_TIME()(那里有个笑话)

       select try_to_time('54600') AS "START TIME"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-29
        • 1970-01-01
        • 1970-01-01
        • 2016-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-21
        相关资源
        最近更新 更多