【问题标题】: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 无法识别该函数。
【问题讨论】:
标签:
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"