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

Oracle中如何将存储yyyymm格式整数的period_int列转换为日期

Oracle整数列(yyyymm格式)转日期格式方法

针对你Oracle数据库中period_int列(存储202201这类yyyymm格式整数)的转换需求,直接用Oracle内置函数就能批量处理,适配后续Tableau筛选场景:

推荐方案:转成日期类型(Tableau筛选更灵活)

直接把整数转成标准日期类型(自动对应当月第一天,比如202201转成2022-01-01),Tableau能直接识别为日期维度,方便做范围筛选、时间轴筛选等操作。SQL语句如下:

SELECT TO_DATE(TO_CHAR(period_int), 'YYYYMM') AS period_date
FROM 你的表名;
  • 先通过TO_CHAR(period_int)把整数转成字符串,避免TO_DATE直接处理整数报错
  • 再用TO_DATE(..., 'YYYYMM')按yyyymm格式解析成日期,自动补全当月第一天

可选:转成指定格式的字符串

如果需要直接输出01/01/2022这种mmddyyyy格式的字符串,在上面基础上再加一层TO_CHAR转换:

SELECT TO_CHAR(TO_DATE(TO_CHAR(period_int), 'YYYYMM'), 'MM/DD/YYYY') AS period_formatted
FROM 你的表名;

不过更推荐用日期类型给Tableau,因为文本类型的日期筛选远不如原生日期维度方便。

如果数据里存在非6位的无效值,怕报错的话,可以加个过滤条件先筛掉脏数据:

SELECT TO_DATE(TO_CHAR(period_int), 'YYYYMM') AS period_date
FROM 你的表名
WHERE REGEXP_LIKE(period_int, '^[0-9]{6}$');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:12:44