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

如何在KSQLDB中解析SQL Server CDC Debezium同步的整数格式日期

问题根因

你转换返回null的核心原因是日期格式串使用错误:

  • 你截取的210813是无分隔符的6位日期,你使用的yy-mm-dd格式串包含短横线分隔符,与实际内容不匹配
  • ksqlDB的日期格式规则中,小写mm代表分钟,代表月份需要使用大写MM
    另外parse_date、format_date为ksqlDB 0.18及以上版本新增的函数,低版本环境无法识别,使用内置的STRINGTODATE即可满足需求。

可行转换方案

你可以直接使用修正后的格式串完成转换:

SELECT STRINGTODATE(SUBSTRING(CAST(df AS STRING), 2), 'yyMMdd') FROM datcon EMIT CHANGES;

如果需要输出完整的TIMESTAMP格式(和SQL Server返回的2021-08-13 00:00:00.000格式对齐),可以额外加一层类型转换:

SELECT CAST(STRINGTODATE(SUBSTRING(CAST(df AS STRING), 2), 'yyMMdd') AS TIMESTAMP) FROM datcon EMIT CHANGES;

如果你的环境默认解析两位年份时会识别为19xx年,可以手动拼接20前缀明确指定世纪:

SELECT STRINGTODATE(CONCAT('20', SUBSTRING(CAST(df AS STRING), 2)), 'yyyyMMdd') FROM datcon EMIT CHANGES;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:39:03