You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

整数转日期时间格式方案 解决Snowflake不兼容MS SQL相关函数问题

Snowflake 整数转时间格式兼容方案

原逻辑说明

你在MS SQL中使用的代码逻辑为:将meas_value字段存储的相对于1900-01-01 00:00:00的秒偏移整数,转换为hh:mi:ss:mmm格式的24小时制时间字符串,示例值54600对应输出为15:10:00:000。

适配后的Snowflake代码

直接使用以下代码替换即可,输出结果与原MS SQL逻辑完全一致:

SELECT TO_CHAR(
         DATEADD('second', b22.meas_value, '1900-01-01'::DATE), 
         'HH24:MI:SS.FF3'
       ) AS "START TIME"
FROM 你的业务表 b22;

适配调整说明

  • Snowflake的DATEADD函数要求第一个参数显式指定时间单位,此处直接用'second'对应秒偏移逻辑,无需再乘以1000转换为毫秒
  • 基准日期显式声明为1900-01-01,和MS SQL默认的0值基准日期完全对齐
  • 格式转换使用Snowflake原生TO_CHAR函数,格式符HH24:MI:SS.FF3对应MS SQL的114格式标准,输出24小时制时间+三位毫秒

特殊场景适配

如果确认你的meas_value存储的是毫秒偏移量,可使用以下代码:

SELECT TO_CHAR(
         DATEADD('millisecond', b22.meas_value, '1900-01-01'::DATE), 
         'HH24:MI:SS.FF3'
       ) AS "START TIME"
FROM 你的业务表 b22;

内容的提问来源于stack exchange,提问作者Slo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:15:04