返回首页

gbase数据、南大通用产品文档:GBase8aDAYOFYEAR(date)

更新日期:2024年09月11日

函数说明
返回date 是一年中的第几天,范围为1 到366。
示例
示例1:返回“2020-08-30”是2020 年的第几天。
gbase> SELECT DAYOFYEAR('2020-08-30') FROM dual;
+-------------------------+
| DAYOFYEAR('2020-08-30') |
+-------------------------+
|
243 |
+-------------------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
796
1 row in set
示例2:返回“2020-12-31”是2020 年的第几天。
gbase> SELECT DAYOFYEAR('2020-12-31') FROM dual;
+-------------------------+
| DAYOFYEAR('2020-12-31') |
+-------------------------+
|
366 |
+-------------------------+
1 row in set

函数说明
返回一个设定值(是由“,”分开的str 组成的字符串),由相应位在bits 集合中
为1 的字符串组成,bits 中的比特值按照从右到左的顺序接受检验(由低比特位到
高比特位)。如果str1 对应第一位比特值为1,str2 对应第二位比特值为1,就返
回str1,str2。以此类推,str1,str2,...中的NULL 值不会被添加到结果中。
示例
示例1:将1 的比特值按从右到左进行校验,“a”对应第一位比特值为1。
gbase> SELECT MAKE_SET(1,'a','b','c') FROM dual;
+-------------------------+
| MAKE_SET(1,'a','b','c') |
+-------------------------+
| a
|
+-------------------------+
1 row in set
示例2:将1 和4 进行或运算,获得0101 的比特值,按从右到左进行校验,即第
一位和第三位的比特值为1,返回str1 和str3 字符串。
gbase> SELECT MAKE_SET(1 | 4,'hello','nice','world') FROM dual;
+----------------------------------------+
| MAKE_SET(1 | 4,'hello','nice','world') |
+----------------------------------------+
| hello,world
|
+----------------------------------------+
1 row in set
示例3:字符串列中的NULL 不被添加到结果中。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
698
gbase> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world') FROM dual;
+---------------------------------------------+
| MAKE_SET(1 | 4,'hello','nice',NULL,'world') |
+---------------------------------------------+
| hello
|
+---------------------------------------------+
1 row in set
示例4:0 没有对应的str。
gbase> SELECT MAKE_SET(0,'a','b','c') FROM dual;
+-------------------------+
| MAKE_SET(0,'a','b','c') |
+-------------------------+
|
|
+-------------------------+
1 row in set

GBase 8a MPP Cluster 以“HH:MM:SS”格式(或“HHH:MM:SS”格式)检索和
显示TIME 值,该值为字符串。
TIME 的范围是“-838:59:59”到“838:59:59”。TIME 类型不仅可以用于表示一
天的时间,而且可以用来表示所经过的时间或两个事件之间的时间间隔(这可能

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
634
比24 小时大许多或是一个负值)。
对于以字符串指定的包含时间界定符的TIME 值,
小于10 的时、分或秒,可以不
指定为两位数值。“8:3:2”与“08:03:02”是一致的。
TIME 值可以多种格式指定:
一个'D HH:MM:SS.fraction'格式的字符串。下面所示的任一种“宽松”的语法均
可以被使用:'HH:MM:SS.fraction','HH:MM:SS','HH:MM','D HH:MM:SS','D
HH:MM','D HH',或'SS'。这里的D 是一个在0-34 之间的天数。注意,fraction
部分可以精确到微秒。
示例
示例1:插入一个标准的TIME 值。
gbase> CREATE TABLE products (producttime TIME);
Query OK, 0 rows affected
gbase> INSERT INTO products(producttime) VALUES('12:35:23');
Query OK, 1 row affected
gbase> SELECT producttime FROM products;
+-------------+
| producttime |
+-------------+
| 12:35:23
|
+-------------+
1 row in set
示例2:插入一个NULL 值。
gbase> CREATE TABLE products (producttime TIME);
Query OK, 0 rows affected
gbase> INSERT INTO products(producttime) VALUES(NULL);
Query OK, 1 row affected
gbase> SELECT producttime FROM products;
+-------------+
| producttime |
+-------------+
| NULL
|
+-------------+
1 rows in set
示例3:插入一个非法的TIME 值,系统报告错误信息。
gbase> CREATE TABLE products (producttime TIME);
Query OK, 0 rows affected
gbase> INSERT INTO products(producttime) VALUES('14:08:89');
ERROR 1292 (22007): Incorrect time value: '14:08:89' for column 'producttime' at
row 1