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

Databricks SQL中yyyyMMDD格式STRING无法转换为yyyy-MM-DD格式DATE问题求解

Databricks SQL 字符串日期(yyyyMMdd)转DATE类型解决方案

核心实现方法

Databricks SQL 原生支持to_date函数指定输入字符串的日期格式,直接调用即可完成转换,转换后的DATE类型默认展示格式为yyyy-MM-dd:

-- 替换date_str为你的字符串日期字段名,your_table为你的表名
SELECT to_date(date_str, 'yyyyMMdd') AS formatted_date
FROM your_table;

兜底兼容方案

如果存在部分非标准格式的异常数据,或需要更可控的转换逻辑,可以先通过字符串截取拼接为带横杠的格式再转DATE:

SELECT 
  to_date(
    concat_ws(
      '-', 
      substring(date_str, 1, 4), 
      substring(date_str, 5, 2), 
      substring(date_str, 7, 2)
    ), 
    'yyyy-MM-dd'
  ) AS formatted_date
FROM your_table;

注意事项

  • 格式符大小写敏感:年用小写y、月份用大写M、日期用小写d,格式符写错会导致转换结果为NULL
  • 如需避免转换失败报错中断任务,可以替换为try_to_date函数,转换失败时会返回NULL而非抛出异常:
SELECT try_to_date(date_str, 'yyyyMMdd') AS formatted_date
FROM your_table;
  • 转换完成后可以先取少量数据校验转换结果是否符合预期:
SELECT date_str, to_date(date_str, 'yyyyMMdd') AS formatted_date
FROM your_table
LIMIT 10;

内容的提问来源于stack exchange,提问作者Maciej Kołkowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:45:04