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

求助:创建返回指定日期最后时刻的Snowflake函数报错

Snowflake函数创建错误分析与修正

你的代码存在三个关键问题:

  • 命名冲突:date是Snowflake的内置函数,用它作为自定义函数名会触发语法错误,必须更换为自定义名称,比如get_day_end_timestamp。
  • 参数未利用:函数定义了参数Dt,但逻辑里却用了current_timestamp,完全没用到传入的指定日期,根本无法实现“返回指定日期当天最后时刻”的需求。
  • 计算逻辑冗余:原代码的时间计算绕了弯路,直接基于传入参数处理更简洁。

修正后的函数代码如下:

CREATE OR REPLACE FUNCTION get_day_end_timestamp(Dt TIMESTAMP)
RETURNS TIMESTAMP
AS
$$
SELECT DATEADD(SECOND, -1, DATEADD(DAY, 1, DATE_TRUNC('day', Dt)))
$$;

调用示例:

-- 获取2022-09-29当天的最后时刻
SELECT get_day_end_timestamp('2022-09-29'::TIMESTAMP);

执行后会返回2022-09-29 23:59:59.000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:15:37