代码之家  ›  专栏  ›  技术社区  ›  JosephStyons

在甲骨文中,为什么这是3月1日?

  •  4
  • JosephStyons  · 技术社区  · 15 年前

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

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

    我试过Oracle 10g和11g。

    3 回复  |  直到 15 年前
        1
  •  4
  •   JosephStyons    15 年前

    Oracle在其日期类型值字段中需要一个完整的日期时间,因此它需要 现在的 我想是个月吧,因为你只需要一年的信息。请记住,在Oracle中,您总是需要转换到'u date()和'u char()日期。假设是这样,Oracle“知道”您将获得所需的信息。

        2
  •  0
  •   Tony Andrews    15 年前

    我认为没有任何合理的理由,只是“它做了什么”。也有人讨论过 on the OTN forums 大约一年前。

        3
  •  0
  •   duffymo    15 年前

    不知道,但我的猜测是月份是以零为基础的,所以jan=0,mar=2,等等。

    “10”可能是一个正在形成的千年虫问题,但它被解释为2010年。

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

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