SET DATESTYLE

指定如何设置当前会话的日期/时间输出格式。使用 SHOW DATESTYLE 验证当前输出设置。

语法

SET DATESTYLE TO { arg | 'arg' }[, arg | 'arg' ]

参数

SET DATESTYLE 只有一个参数,该参数可以设置为一个或两个指定日期排序和样式的实参。每个实参可以单独指定或结合使用;如果结合,则可按任意顺序指定。

下表说明了每种样式及其支持的日期排序实参:

Vertica 将忽略 ISOGERMAN 日期样式的顺序实参。如果日期样式为 SQLPOSTGRES,则顺序设置将决定以 MDY 还是 DMY 顺序输出日期。SQLPOSTGRES 都不支持 YMD 顺序。如果为 YMDSQL 指定 POSTGRES,Vertica 将忽略该设置,并使用默认的 MDY 顺序。

日期样式和排序还会影响 Vertica 解释输入值的方式。有关详细信息,请参阅日期/时间字面量

特权

输入依赖项

在某些情况下,输入格式会决定输出格式,而不管日期样式和顺序的设置:

  • Vertica 中 DATESTYLE 的 ISO 输出为 ISO 长格式,但也接受某些输入样式。如果输入中最先出现年份,则将对输入和输出使用 YMD,而不考虑 DATESTYLE 值。

  • INTERVAL 输入和输出共用同一格式,以下内容除外:

    • CENTURYWEEK 等单位转换为年和日。

    • AGO 转换为相应符号。

    如果日期样式设置为 ISO,输出将遵照以下格式:

    [ quantity unit [...] ] [ days ] [ hours:minutes:seconds ]
    

示例

=> CREATE TABLE t(a DATETIME);
CREATE TABLE
=> INSERT INTO t values ('3/16/2016');
 OUTPUT
--------
      1
(1 row)

=> SHOW DATESTYLE;
   name    | setting
-----------+----------
 datestyle | ISO, MDY
(1 row)

=> SELECT * FROM t;
          a
---------------------
 2016-03-16 00:00:00
(1 row)

=> SET DATESTYLE TO German;
SET
=> SHOW DATESTYLE;
   name    |   setting
-----------+-------------
 datestyle | German, DMY
(1 row)

=> SELECT * FROM t;
          a
---------------------
 16.03.2016 00:00:00
(1 row)

=> SET DATESTYLE TO SQL;
SET
=> SHOW DATESTYLE;
   name    | setting
-----------+----------
 datestyle | SQL, DMY
(1 row)

=> SELECT * FROM t;
          a
---------------------
 16/03/2016 00:00:00
(1 row)

=> SET DATESTYLE TO Postgres, MDY;
SET
=> SHOW DATESTYLE;
   name    |    setting
-----------+---------------
 datestyle | Postgres, MDY
(1 row)

=> SELECT * FROM t;
            a
--------------------------
 Wed Mar 16 00:00:00 2016
(1 row)