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

使用TO_NUMBER时出现无效数字错误:日期格式带空格为何报错?

带空格的日期格式字符串转数字报错的原因

核心原因是**TO_NUMBER无法直接转换包含空格的非纯数字字符串**:

  • 第一条SQL中,TO_CHAR(TO_DATE(...), 'RRRR MM DD')会生成带空格分隔的字符串,比如'2024 05 20'。这种包含空格的字符串不符合TO_NUMBER默认的数字格式要求,空格不属于合法数字字符,因此触发INVALID NUMBER错误。
  • 第二条SQL把格式改为'RRRRMMDD',生成的是纯数字组成的字符串(如'20240520'),完全符合数字转换的规则,所以能正常执行。

如果一定要用带空格的格式完成转换,需要给TO_NUMBER指定匹配的格式掩码,比如:

SELECT TO_NUMBER(TO_CHAR(TO_DATE(SUBSTR(UPDATED_DATE,1,8),'DD/MM/RRRR'),'RRRR MM DD'), '9999 99 99') FROM tw_edu_infra_amenities;

不过这种写法没必要,直接使用无空格的日期格式更简洁高效。

内容的提问来源于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:39:19