返回首页

gbase数据、南大通用产品文档:GBase8aWEEK(date[,mode])

更新日期:2024年09月11日

函数说明
该函数返回日期的星期数。
两个参数形式的WEEK()允许用户指定周是否以星期日或星期一开始,以及返回
值范围。
如果忽略了mode 参数,则使用系统变量default_week_format 的值。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
830
说明
可以使用SHOW VARIABLES LIKE '%default_week_format%'; 命令查看
default_week_format 的默认值。
下面的表显示了mode 参数怎样工作:
表5- 28 参数说明
模式
周的起始天
范围
说明
0
Sunday
0~53
第一周以星期日开始
1
Monday
0~53
这种模式多用了3 天
2
Sunday
1~53
第一周以星期日开始
3
Monday
1~53
这种模式多用了3 天
4
Sunday
0~53
这种模式多用了3 天
5
Monday
0~53
第一周以星期一开始
6
Sunday
1~53
这种模式多用了3 天
7
Monday
1~53
第一周以星期一开始
8
Sunday
1~54
周日算一周的开始,并且只要
有一天就算一周。
9
Monday
1~54
周一算一周的开始,并且只要
有一天就算一周。
示例
示例1:返回“2020-08-31”对应的2020 年中第几周。
gbase> SELECT WEEK('2020-08-31') FROM dual;
+--------------------+
| WEEK('2020-08-31') |
+--------------------+
|
35 |
+--------------------+
1 row in set
示例2:返回“2020-08-30”对应的2020 年中第几周,模式为“0”。
gbase> SELECT WEEK('2020-08-20',0) FROM dual;
+----------------------+
| WEEK('2020-08-20',0) |
+----------------------+
|
33 |
+----------------------+
1 row in set
示例3:返回“2020-08-30”对应的2020 年中第几周,模式为“1”。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
831
gbase> SELECT WEEK('2020-08-30',1) FROM dual;
+----------------------+
| WEEK('2020-08-30',1) |
+----------------------+
|
35 |
+----------------------+
1 row in set
示例4:返回“2020-12-31”对应的2020 年中第几周,模式为“1”。
gbase> SELECT WEEK('2020-12-31',1) FROM dual;
+----------------------+
| WEEK('2020-12-31',1) |
+----------------------+
|
53 |
+----------------------+
1 row in set
示例5:如果一周是上一年的最后一周,不使用可选模式2、3、6 或7,则函数
WEEK()返回0。
gbase> SELECT YEAR('2020-01-01'), WEEK('2020-01-01',0) FROM dual;
+--------------------+----------------------+
| YEAR('2020-01-01') | WEEK('2020-01-01',0) |
+--------------------+----------------------+
|
2020 |
0 |
+--------------------+----------------------+
1 row in set
示例6:返回“2020-01-01”对应的2020 年中第几周,模式为“2”。
gbase> SELECT YEAR('2020-01-01'), WEEK('2020-01-01',2) FROM dual;
+--------------------+----------------------+
| YEAR('2020-01-01') | WEEK('2020-01-01',2) |
+--------------------+----------------------+
|
2020 |
52 |
+--------------------+----------------------+
1 row in set
示例7:返回“2020-01-01”对应的2020 年中第几周,模式为“3”。
gbase> SELECT YEAR('2020-01-01'), WEEK('2020-01-01',3) FROM dual;
+--------------------+----------------------+
| YEAR('2020-01-01') | WEEK('2020-01-01',3) |
+--------------------+----------------------+
|
2020 |
1 |
+--------------------+----------------------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
832
示例8:返回“2020-01-01”对应的2020 年中第几周,模式为“6”。
gbase> SELECT YEAR('2020-01-01'), WEEK('2020-01-01',6) FROM dual;
+--------------------+----------------------+
| YEAR('2020-01-01') | WEEK('2020-01-01',6) |
+--------------------+----------------------+
|
2020 |
1 |
+--------------------+----------------------+
1 row in set
示例9:返回“2020-01-01”对应的2020 年中第几周,模式为“0”。
gbase> SELECT YEAR('2020-01-01'), WEEK('2020-01-01',0) FROM dual;
+--------------------+----------------------+
| YEAR('2020-01-01') | WEEK('2020-01-01',0) |
+--------------------+----------------------+
|
2020 |
0 |
+--------------------+----------------------+
1 row in set
用户可能会提出意见,认为GBase 8a MPP Cluster 对于WEEK()函数应该返回
“52”,原因是给定的日期实际上发生在2019 年的第52 周。我们决定返回“0”
作为代替的原因,是希望该函数能返回“给定年份的星期数”。这使得WEEK()
函数在同其它从日期中抽取日期部分的函数结合时的使用更加可靠。
假如希望所计算的关于年份的结果包括给定日期所在周的第一天,
则应使用0、
2、
5 或7 作为mode 参数选择。
示例10:返回“2020-01-01”对应的2020 年中第几周,模式为“2”。
gbase> SELECT WEEK('2020-01-01',2) FROM dual;
+----------------------+
| WEEK('2020-01-01',2) |
+----------------------+
|
52 |
+----------------------+
1 row in set
示例11:使用YEARWEEK()函数。
gbase> SELECT YEARWEEK('2020-01-01') FROM dual;
+------------------------+
| YEARWEEK('2020-01-01') |
+------------------------+
|
201952 |
+------------------------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
833
示例12:使用MID 函数,从“YEARWEEK('2020-01-01')”返回值中从第一个字
符开始,连续提取2 个。
gbase> SELECT MID(YEARWEEK('2020-01-01'),5,2) FROM dual;
+---------------------------------+
| MID(YEARWEEK('2020-01-01'),5,2) |
+---------------------------------+
| 52
|
+---------------------------------+
1 row in set

存储池创建 dbspace(SQL 管理 API)
随同 admin() 或 task() 函数,使用 create dbspace from storagepool 参数来从存储
池中的一个条目创建永久 dbspace。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 713 -

语法

元素
描述
关键考虑
dbspace
要创建的 dbspace 名。
在 dbspace 名称中必须是唯一
的,且不可超过 128 字节。名
称必须以一个字母或下划线开
头,且仅可包括字母、数字、下
环线(_)符或 $ 字符。
first_extent
tblspace tblspace 的第一个
extent 的大小,
以 KB 为单位。

请参阅 admin() 和 task() 参数
大小规范。
initial_chunk_size
新 dbspace 的初始 chunk 大
小。
请参阅 admin() 和 task() 参数
大小规范。
mirroring_flag
二者之一:

1 = 镜像

0 = 无镜像
镜像标志是可选的。如果未指
定,则缺省是无镜像的
dbspace。
next_extent
tblspace tblspace 中下一个
extent 的大小,
以 KB 为单位。

请参阅 admin() 和 task() 参数
大小规范。
page_size
新 dbspace 的非缺省页大小,
以 KB 为单位。
页大小是可选的。
然而,
如果您
指定 mirroring 为 1,则还必
须指定页大小。
有效的页大小依
赖于计算机的缺省页大小:
l 2
KB 缺省页大小:
2、
4、
6、
8、
10、
12 或 16
KB
l 4
KB 缺省页大小:
4、
8、
12 或 16 KB

要了解创建临时 dbspace 的 admin() 或 task() 语法,请参阅 create tempdbspace 参
数:创建临时 dbspace(SQL 管理 API)。
示例

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 714 -

下列命令创建名为 dbspace3 的镜像的 dbspace。
新 dbspace 的大小为 1
GB,
页大小为 6
KB,tblspace 第一个 extent 大小为 200 KB,且下一个 extent 大小为 400 KB。
EXECUTE FUNCTION task("create dbspace from storagepool",
"dbspace3", "1 GB", "6", "1", "200", "400");
下列命令创建名为 dbspace8 的无镜像的 dbspace。新 dbspace 的大小为 50
MB。因为未
指定页大小,所以新 dbspace 为缺省页大小。
EXECUTE FUNCTION task("create dbspace from storagepool",
"dbspace8", "50000");

按安装章节准备新机器的操作系统环境。

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
326
说明

新节点的操作系统版本与当前的待替换节点相同。

新节点的IP 与当前待替换节点IP 相同。