这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

间隔字面量

表示时间跨度的字面量。

语法

[ @ ] [-] { quantity subtype-unit }[...] [ AGO ]

参数

注意

  • 不同的单位数量会自动叠加。

  • 间隔常量的上下限分别为:

    • 9223372036854775807 usec‑9223372036854775807 usec

    • 296533 years 3 mons 21 days 04:00:54.775807‑296533 years ‑3 mons ‑21 days ‑04:00:54.775807

  • 间隔常量的范围是 +/– 263 – 1 微秒。

  • 在 Vertica 中,间隔字段可以增加,允许大浮点数。

示例

请参阅指定间隔输入

1 - 间隔子类型单位

下表列出了可在间隔字面量中指定的子类型单位,分为以下几个主要类别:

年-月子类型单位

天-时间子类型单位

处理 m 输入

Vertica 根据上下文将输入单位 m 解释为月份或分钟。例如,以下命令可创建包含间隔值的单列表:

=> CREATE TABLE int_test(i INTERVAL YEAR TO MONTH);

在以下 INSERT 语句中,Vertica 将间隔字面量 1y 6m 解释为 1 年 6 个月:

=> INSERT INTO int_test VALUES('1y 6m');
 OUTPUT
--------
      1
(1 row)
=> COMMIT;
COMMIT
=> SET INTERVALSTYLE TO UNITS;
SET
=> SELECT * FROM int_test;
        i
-----------------
 1 year 6 months
(1 row)

以下 ALTER TABLE 语句可将 DAY TO MINUTE 间隔列添加到表 int_test 中:

=>  ALTER TABLE int_test ADD COLUMN x INTERVAL DAY TO MINUTE;
ALTER TABLE

下一个 INSERT 语句将第一列和第二列分别设置为 3y 20m 和 1y 6m。在这种情况下,Vertica 通过以下两种方式解释 m 输入字面量:

  • 对于第 i 列,Vertica 将 m 输入解释为月份,显示 4 年 8 个月。

  • 对于第 x 列,Vertica 将 m 输入解释为分钟。由于间隔定义为 DAY TO MINUTE,因此将插入的输入值 1y 6m 转换为 365 天 6 分钟:

=> INSERT INTO int_test VALUES ('3y 20m', '1y 6m');
 OUTPUT
--------
      1
(1 row)

=> SELECT * FROM int_test;
        i         |        x
------------------+-----------------
 1 year 6 months  |
 4 years 8 months | 365 days 6 mins
(2 rows)

2 - 间隔限定符

指定如何解释输出的间隔字面量并为其设置格式,同时可选择性设置精度。间隔限定符由一或两个单元组成:

unit [ TO unit ] [ (p) ]

其中:

  • 单位指定天-时间或年-月子类型

  • p 指定精度,0 到 6 之间的整数。

如果间隔省略了间隔限定符,则默认值为 DAY TO SECOND(6)

间隔限定符分为以下两个类别:

天-时间间隔限定符

年-月间隔限定符

示例

请参阅控制间隔格式