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

时区的Oracle日期格式掩码是什么?

  •  5
  • dacracot  · 技术社区  · 16 年前

    TZD 格式化掩码似乎不起作用。。。

    insert into blah
        values (to_date('Thu, 18 Feb 2010 08:37:00 EST','Dy, DD Mon YYYY HH24:MI:SS TZD'));
    
    ORA-01821: date format not recognized
    

    如果我移除“TZD”。。。

    insert into blah
        values (to_date('Thu, 18 Feb 2010 08:37:00','Dy, DD Mon YYYY HH24:MI:SS'));
    
    1 row created.
    

    Oracle中这种insert语句的正确掩码是什么?

    desc blah
     Name                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     D                          DATE
    

    2 回复  |  直到 16 年前
        1
  •  6
  •   Adam Musch    16 年前

    日期列没有时区作为选项。您必须将列创建为数据类型 TIMESTAMP WITH TIME ZONE 或 TIMESTAMP WITH LOCAL TIME ZONE TO_DATE 函数不理解正在应用的时区格式掩码。

    SQL> CREATE TABLE T
      2  (DT DATE,
      3   TS TIMESTAMP,
      4   TSTZ TIMESTAMP WITH TIME ZONE,
      5   TSLTZ TIMESTAMP WITH LOCAL TIME ZONE);
    
    Table created.
    
    SQL> INSERT INTO T (TSLTZ) VALUES 
      2  (to_timestamp_tz('Thu, 18 Feb 2010 08:37:00 EST','DY, DD Mon YYYY HH24:MI:SS TZD'))
      3  /
    
    1 row created.
    
    SQL> INSERT INTO T (TSTZ) VALUES 
      2  (to_timestamp_tz('Thu, 18 Feb 2010 08:37:00 EST','DY, DD Mon YYYY HH24:MI:SS TZD'))
      3  /
    
    1 row created.
    
        2
  •  0
  •   Ananth N    8 年前