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

Snowflake解析带德语月份名时间戳的格式转换报错问题

解决方案

改会话时区没用,时区参数只控制时间偏移计算,和月份、星期名称的解析语言无关。Snowflake的MON、MONTH格式符对非数字月份名的匹配,完全依赖会话级LANGUAGE参数,默认值是en(英语),所以识别不了德语的mai这类月份名。

直接把当前会话的语言设为德语,就能直接解析你要的格式,不需要手动写替换逻辑适配不同月份:

-- 设置当前会话语言为德语
ALTER SESSION SET LANGUAGE = 'de';

-- 原解析语句可直接运行成功
SELECT to_timestamp('31 mai 2022 23:22:01 UTC', 'DD MON YYYY HH24:MI:SS UTC');

补充说明

  • 该设置会自动适配所有德语月份的缩写和全称,包括和英语拼写有差异的三月(Mär/März)、十月(Okt/Oktober)、十二月(Dez/Dezember),不需要额外写REPLACE函数逐个映射。
  • 如果你处理的是多语言混合的数据源,可以在处理德语来源数据的逻辑前单独设置该参数,处理完成后切回LANGUAGE = 'en'即可;也可以给对应处理任务绑定独立的用户、仓库级参数配置,避免影响其他SQL逻辑。
  • 语句里的UTC后缀会被正常识别为UTC时区,如果你需要转换为其他时区输出,后续搭配CONVERT_TIMEZONE函数处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:36:25