04:05:06 (1 row)
SELECT time '04:05:06 PST';
time 04:05:06 (1 row)
SELECT time with time zone '04:05:06 PST';
timetz 04:05:06-08 (1 row)
特殊值
GaussDB(DWS)支持几个特殊值,在读取的时候将被转换成普通的日期/时间值,请参 考表4-14。
表4-14 特殊值
输入字符串 适用类型 描述
epoch date,timestamp 1970-01-01 00:00:00+00 (Unix系统零 时)
infinity timestamp 比任何其他时间戳都晚 -infinity timestamp 比任何其他时间戳都早 now date,time,
timestamp 当前事务的开始时间 today date,timestamp 今日午夜
tomorrow date,timestamp 明日午夜 yesterday date,timestamp 昨日午夜
allballs time 00:00:00.00 UTC
时间段输入
reltime的输入方式可以采用任何合法的时间段文本格式,包括数字形式(含负数和小 数)及时间形式,其中时间形式的输入支持SQL标准格式、ISO-8601格式、
POSTGRES格式等。另外,文本输入需要加单引号。
时间段输入的详细信息请参考表6 时间段输入。
表4-15 时间段输入
输入示例 输出结果 描述
60 2 mons 采用数字表示时间段,默认单
位是day,可以是小数或负 数。特别的,负数时间段,在 语义上,可以理解为“早于多 久”。
31.25 1 mons 1 days 06:00:00 -365 -12 mons -5 days 1 years 1 mons 8 days
12:00:00 1 years 1 mons 8 days
12:00:00 采用POSTGRES格式表示时间 段,可以正负混用,不区分大 小写,输出结果为将输入时间 段计算并转换得到的简化 POSTGRES格式时间段。
-13 months -10 hours -1 years -25 days -04:00:00
-2 YEARS +5 MONTHS
10 DAYS -1 years -6 mons -25 days -06:00:00 P-1.1Y10M -3 mons -5 days
-06:00:00 采用ISO-8601格式表示时间 段,可以正负混用,不区分大 小写,输出结果为将输入时间 段计算并转换得到的简化 POSTGRES格式时间段。
-12H -12:00:00
示例:
--创建表。
CREATE TABLE reltime_type_tab(col1 character(30), col2 reltime);
--插入数据。
INSERT INTO reltime_type_tab VALUES ('90', '90');
INSERT INTO reltime_type_tab VALUES ('-366', '-366');
INSERT INTO reltime_type_tab VALUES ('1975.25', '1975.25');
INSERT INTO reltime_type_tab VALUES ('-2 YEARS +5 MONTHS 10 DAYS', '-2 YEARS +5 MONTHS 10 DAYS');
INSERT INTO reltime_type_tab VALUES ('30 DAYS 12:00:00', '30 DAYS 12:00:00');
INSERT INTO reltime_type_tab VALUES ('P-1.1Y10M', 'P-1.1Y10M');
--查看数据。
SELECT * FROM reltime_type_tab;
col1 | col2
1975.25 | 5 years 4 mons 29 days
-2 YEARS +5 MONTHS 10 DAYS | -1 years -6 mons -25 days -06:00:00 P-1.1Y10M | -3 mons -5 days -06:00:00
-366 | -1 years -18:00:00 90 | 3 mons
30 DAYS 12:00:00 | 1 mon 12:00:00 (6 rows)
--删除表。
DROP TABLE reltime_type_tab;
4.7 几何类型
GaussDB(DWS)支持的几何类型请参见表4-16。最基本的类型:点,是其它类型的基 础。
表4-16 几何类型
名字 存储空间 说明 表现形式
point 16字节 平面中的点 (x,y)
lseg 32字节 (有限)线段 ((x1,y1),(x2,y2)) box 32字节 矩形 ((x1,y1),(x2,y2)) path 16+16n字节 闭合路径(与多边形类似) ((x1,y1),...) path 16+16n字节 开放路径 [(x1,y1),...]
polygon 40+16n字节 多边形(与闭合路径相似) ((x1,y1),...)
circle 24 字节 圆 <(x,y),r> (圆心和半 径)
GaussDB(DWS)提供了一系列的函数和操作符用来进行各种几何计算,如拉伸、转 换、旋转、计算相交等。详细信息请参考几何函数和操作符。
点
点是几何类型的基本二维构造单位。用下面语法描述point的数值:
( x , y ) x , y
x和y是用浮点数表示的点的坐标。
点输出使用第一种语法。
线段
线段(lseg)是用一对点来代表的。用下面的语法描述lseg的数值:
[ ( x1 , y1 ) , ( x2 , y2 ) ] ( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2
(x1,y1)和(x2,y2)表示线段的端点。
线段输出使用第一种语法。
矩形
矩形是用一对对角点来表示的。用下面的语法描述box的值:
( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2
(x1,y1)和(x2,y2)表示矩形的一对对角点。
矩形的输出使用第二种语法。
任何两个对角都可以出现在输入中,但按照那样的顺序,右上角和左下角的值会被重 新排序以存储。
路径
路径由一系列连接的点组成。路径可能是开放的,也就是认为列表中第一个点和最后 一个点没有连接,也可能是闭合的,这时认为第一个和最后一个点连接起来。
用下面的语法描述path的数值:
[ ( x1 , y1 ) , ... , ( xn , yn ) ] ( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn
点表示组成路径的线段的端点。方括弧([])表明一个开放的路径,圆括弧(())表明 一个闭合的路径。当最外层的括号被省略,如在第三至第五语法,会假定一个封闭的 路径。
路径的输出使用第一种或第二种语法输出。