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

在Snowflake中如何将datetime类型转换为YYYYMMDD格式的INT类型

datetime转YYYYMMDD格式整数实现方案

你原始写法失效的核心原因是:将datetime字段转为DATE类型时指定的FORMAT参数仅控制查询结果的展示样式,不会修改DATE类型的内部存储结构,后续转VARCHAR时拿到的是数据库默认格式的日期字符串,并非你需要的YYYYMMDD格式,因此最终转INT会失败或结果不符合预期。
不同数据库的正确实现写法如下:

  • Teradata(你原始写法的FORMAT语法符合Teradata风格)
SELECT CAST(TO_CHAR(DATETIME, 'YYYYMMDD') AS INTEGER) AS DATE_KEY
FROM TBL_A;
  • MySQL
SELECT CAST(DATE_FORMAT(DATETIME, '%Y%m%d') AS UNSIGNED) AS DATE_KEY
FROM TBL_A;
  • SQL Server
SELECT CAST(CONVERT(VARCHAR(8), DATETIME, 112) AS INT) AS DATE_KEY
FROM TBL_A;
  • PostgreSQL
SELECT CAST(TO_CHAR(DATETIME, 'YYYYMMDD') AS INTEGER) AS DATE_KEY
FROM TBL_A;
  • Oracle
SELECT TO_NUMBER(TO_CHAR(DATETIME, 'YYYYMMDD')) AS DATE_KEY
FROM TBL_A;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:54:05