间隔子类型单位
下表列出了可在间隔字面量中指定的子类型单位,分为以下几个主要类别:
年-月子类型单位
天-时间子类型单位
处理 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)