首页 > 解决方案 > 为什么从 YYYYMMDD 到 YYYY-MM-DD 的 sql 日期转换不会失败?

问题描述

这行得通,但为什么呢?YYYYMMDD 如何被接受为 YYYY-MM-DD?

select to_date(TO_CHAR(sysdate, 'YYYYMMDD'), 'YYYY-MM-DD HH24:MI:SS') from dual

标签: sqloracledatetime

解决方案


to_date()记录在这种情况下忽略标点符号:

在将字符串值转换为日期值时,以下附加格式规则适用(除非您在格式模型中使用了 FX 或 FXFM 修饰符来控制精确的格式检查):

  • 如果指定了数字格式元素的所有数字(包括前导零),则可以从日期字符串中省略格式字符串中包含的标点符号。例如,为 MM、DD 和 YY 等两位数格式元素指定 02 而不是 2。

推荐阅读