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

TO_TIMESTAMP函数使用问题:将NUMBER类型日期转为指定格式TIMESTAMP

解决方案

你当前的SQL存在两个核心问题:

  • 转换逻辑有误:NUMBER类型的NEW_DATE无法直接用TO_DATE(..., 'YYYY-MM-DD')转换——数字转字符串后不会带分隔符,比如数值20210118转字符串是'20210118',而非'2021-01-18',这会导致日期转换结果不符合预期。
  • 输出格式未指定:TIMESTAMP类型默认显示会包含时分秒部分,要得到18-JAN-2021的格式,必须用TO_CHAR函数明确指定输出样式。

正确转换并格式化的SQL

假设你的NEW_DATE存储的是YYYYMMDD格式的数字(比如20210118代表2021年1月18日),执行以下语句即可得到期望结果:

SELECT TO_CHAR(TO_TIMESTAMP(TO_CHAR(NEW_DATE), 'YYYYMMDD'), 'DD-MON-YYYY') AS formatted_timestamp
FROM tw_edu_infra_amenities;

步骤拆解

  1. TO_CHAR(NEW_DATE):把NUMBER类型的日期值转为字符串(如20210118→'20210118')
  2. TO_TIMESTAMP(..., 'YYYYMMDD'):将字符串转换为TIMESTAMP类型,此时时分秒默认补为0
  3. TO_CHAR(..., 'DD-MON-YYYY'):将TIMESTAMP按指定格式输出为DD-MON-YYYY样式的字符串

如果你的NEW_DATE是其他数字格式(比如YYYYMMDDHH24MISS),只需调整TO_TIMESTAMP中的格式参数匹配存储规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:45:38