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

Databricks中如何将特定格式字符串列转换为Timestamp?

解决Databricks字符串转Timestamp的方案

核心方法:使用to_timestamp指定匹配格式

你的字符串格式是英文月份全称 + 日期(带逗号) + 年份 + 两个空格 + 12小时制时间 + AM/PM,必须用完全匹配的格式掩码才能转换成功,Spark SQL对应格式规则如下:

  • MMMM:匹配英文月份全称(如January)
  • d:匹配1-2位数字的日期(如1)
  • yyyy:匹配4位年份
  • hh:mm:ss a:匹配12小时制时间及上午/下午标识
  • 注意原字符串中日期与时间之间是两个空格,格式掩码里也要对应写两个空格

1. 先验证转换结果

SELECT to_timestamp(your_date_str_col, 'MMMM d, yyyy  hh:mm:ss a') AS converted_timestamp
FROM your_table;

2. 添加新Timestamp列并写入数据

方法一:ALTER TABLE新增列并更新

-- 新增Timestamp类型列
ALTER TABLE your_table ADD COLUMN converted_ts TIMESTAMP;

-- 填充转换后的数据
UPDATE your_table
SET converted_ts = to_timestamp(your_date_str_col, 'MMMM d, yyyy  hh:mm:ss a');

方法二:创建新表(适合一次性转换)

CREATE TABLE new_table
AS SELECT *, to_timestamp(your_date_str_col, 'MMMM d, yyyy  hh:mm:ss a') AS converted_ts
FROM your_table;

常见失败原因排查

  • 格式掩码不匹配:比如遗漏日期后的逗号、时间前的两个空格,或者误将hh(12小时制)写成HH(24小时制)
  • 存在脏数据:部分字符串格式与示例不一致会返回NULL,可用WHERE converted_ts IS NULL筛选异常数据单独处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:10:59