Oracle 在甲骨文中,为什么会在3月1日返回?

Oracle 在甲骨文中,为什么会在3月1日返回?,oracle,date-conversion,Oracle,Date Conversion,在Oracle中,返回的是2010年1月3日。这对我来说毫无意义。有人知道为什么吗 SELECT TO_DATE( '2010' ,'yyyy' ) AS STRANGE_YEAR_RESULT FROM DUAL 我已经在Oracle 10g和11g上试用过。我认为没有任何合理的理由,只是“它能做什么”。大约一年前也有人讨论过这个问题。不知道,但我猜月份是以零为基础的,所以一月=0,三月=2,等等 “10”可能是正在形成的Y2K问题,但它被解读为2010年 如果没有给出一个月的哪一天,那么它

在Oracle中,返回的是2010年1月3日。这对我来说毫无意义。有人知道为什么吗

SELECT TO_DATE( '2010' ,'yyyy' ) AS STRANGE_YEAR_RESULT
FROM DUAL

我已经在Oracle 10g和11g上试用过。

我认为没有任何合理的理由,只是“它能做什么”。大约一年前也有人讨论过这个问题。

不知道,但我猜月份是以零为基础的,所以一月=0,三月=2,等等

“10”可能是正在形成的Y2K问题,但它被解读为2010年

如果没有给出一个月的哪一天,那么它可能是假设一个月的第一天


为什么要测试这个?您永远不想这样编码。

Oracle在其日期类型值字段中需要一个完整的DateTime,因此我猜它需要当前月份的第一天,因为您只需要年份信息。请记住,在Oracle中,始终需要转换到_DATE()和_CHAR()日期。假设是这样,Oracle“知道”您将获得所需的信息