代码之家  ›  专栏  ›  技术社区  ›  Oto Shavadze

sql开发人员中的时间戳数据类型

  •  0
  • Oto Shavadze  · 技术社区  · 11 年前

    在SQL Developer中,我有一个类型为 timestamp(6)

    当我尝试在此字段中插入这样的数据时: 2013-07-10 12:22:22 ,SQL Developer显示错误: not a valid month .

    我在sql developer中有以下设置: enter image description here

    你能告诉我为什么会发生这个错误吗?

    1 回复  |  直到 11 年前
        1
  •  4
  •   Alex Poole    11 年前

    因为您的NLS_TIMESTAMP_FORMAT有一个错误;你有 MM 元素两次。应该是:

    YYYY-MM-DD HH24:MI:SS
    

    如果您只使用 HH 对于小时元素,你将无法区分上午和下午的时间; HH24 会给你 01 上午1点和 13 例如下午1点。分钟元素是 MI 毫米 。目前它正在试图解释 22 作为一个月的数字,正如错误所说,这是无效的。

    但为什么要使用 timestamp 超过a date 如果你不想要分数秒?

    一般来说,您不应该依赖NLS设置。在除特殊查询之外的任何情况下,使用 to_timestamp('2013-07-10 12:22:22', 'YYYY-MM-DD HH24:MI:SS') 以避免其他人使用不同的NLS设置运行您的代码时出现任何歧义和意外。