返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

GBA-01BR-0062
错误码
错误标识
错误显示信息
GBA-01BR-0062

open DC data file Error
错误出现原因
打开数据文件错误
分析与建议
检查数据文件的权限及状态

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

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
833
说明
可以使用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-09-15)
南大通用数据技术股份有限公司
834
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-09-15)
南大通用数据技术股份有限公司
835
示例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-09-15)
南大通用数据技术股份有限公司
836
示例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


GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 307
-
Invalid IP address
当通过 IP 地址连接到 GBase 8s 数据库服务器时,
该 IP 地址必须是有效的。
有效的 IP 地
址是一个四个 0 - 255 的集合,由点(.)分隔:例如,127.0.0.1。