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

Snowflake中12小时制转24小时制TIMESTAMP_NTZ的SQL问题

解决Snowflake中12小时制时间转24小时制TIMESTAMP_NTZ的问题

错误原因

你当前查询报错的核心问题是**TO_TIMESTAMP函数的参数顺序颠倒**。Snowflake中TO_TIMESTAMP的正确语法是TO_TIMESTAMP(<待解析的字符串>, <格式匹配字符串>),而你把格式字符串'YYYY-MM-DD hh:mm:ss aa'放在了第一个参数位置,导致系统无法识别输入的时间字符串格式,进而抛出解析错误。

正确实现方案

不需要多层嵌套转换,直接使用TO_TIMESTAMP_NTZ函数,指定匹配12小时制的格式字符串,解析拼接后的日期时间即可:

SELECT
  TO_TIMESTAMP_NTZ(CONCAT(DATE, ' ', TIME), 'YYYY-MM-DD hh:mm:ss aa') AS timestamp_column
FROM FCT_LYTX_CAMERA_EVENT;

补充说明

  • TO_TIMESTAMP_NTZ支持直接通过第二个参数指定输入字符串的格式,一步完成解析+类型转换,无需额外的TO_VARCHAR中转。
  • 格式符aa会自动兼容大小写的AM/PM标识(比如pm/PM/am/AM),无需单独处理大小写问题。
  • 最终得到的timestamp_column即为你需要的TIMESTAMP_NTZ类型,其内部存储为时间戳值,如需以'YYYY-MM-DD HH24:MI:SS'格式展示,可通过会话参数ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS';调整显示格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:02:52