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

MSSQL日期差转天/小时/分钟代码迁移至Snowflake实现求助

正确Snowflake实现代码

以下代码完全对齐原MSSQL的计算逻辑,可直接使用:

TO_VARCHAR(DATEDIFF(second, A.Date_Time, CURRENT_TIMESTAMP()) / 86400) || 'Days '
|| TO_VARCHAR(MOD(DATEDIFF(second, A.Date_Time, CURRENT_TIMESTAMP()), 86400) / 3600) || 'Hours '
|| TO_VARCHAR(MOD(MOD(DATEDIFF(second, A.Date_Time, CURRENT_TIMESTAMP()), 86400), 3600) / 60) || 'Mins'
AS "Waiting Pending Time"

代码适配要点

  • 数值转字符串:Snowflake 可直接用TO_VARCHAR()完成转换,如需限制长度可调整为TO_VARCHAR(xxx, 10)对齐原MSSQL的varchar(10)要求
  • 取模运算:替换MSSQL的%运算符为Snowflake兼容的MOD()函数
  • 字符串拼接:Snowflake 不支持+做字符串拼接,改用||运算符完成多段内容拼接
  • 别名设置:带空格的别名需要用双引号包裹,匹配你要求的[Waiting Pending Time]别名
  • 笔误修正:删除了原MSSQL代码中误写的多层A.字段引用,统一使用A.Date_Time

原测试代码问题说明

你之前编写的测试代码存在两处核心错误:

  1. 转换函数混用:CONVERT和TO_VARCHAR用法错误,Snowflake中CONVERT语法为CONVERT(目标类型, 待转换值),不需要嵌套TO_VARCHAR使用
  2. 拼接逻辑错误:不能直接用+拼接数值和字符串,也不需要给'Days'额外加两层引号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 15:03:04