返回首页

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

更新日期:2024年09月11日

函数说明
ADD_MONTHS(date, number[,mode])函数是在一个日期上加上指定的月份数,其
中,日期中的日是不变的。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
775
如果开始日期为某月的最后一天,且结果月份的天数比开始月份的天数少,结果
将会返回对应结果月份的最后一天。
表5- 19 参数说明
参数名称


date
Descripti 一个日期数值。
number
加上的月份数,如果是要减去的月份数,则为负数。
mode
若开始日期为某月的最后一天,且结果月份的天数比开始月
份的天数多,则根据mode 值返回结果。若mode 为0,则返
回开始日期对应的一天;
若为1,
则返回对应结果月份的最后
一天。默认值为0。
示例
示例1:在当前日期时间上加上3 个月,日期中的日不变。
gbase> SELECT NOW(),ADD_MONTHS(NOW(),3) AS f_Show FROM dual;
+---------------------+---------------------+
| NOW()
| f_Show
|
+---------------------+---------------------+
| 2020-04-01 13:55:56 | 2020-07-01 13:55:56 |
+---------------------+---------------------+
1 row in set
示例2:增加的月份为负数时,相当于提前月份数。
gbase> SELECT NOW(),ADD_MONTHS(NOW(),-3) AS f_Show FROM
dual;
+---------------------+---------------------+
| NOW()
| f_Show
|
+---------------------+---------------------+
| 2020-04-01 13:56:26 | 2020-01-01 13:56:26 |
+---------------------+---------------------+
1 row in set
示例3:通过使用to_date 函数,转换为日期型后,再加上指定的月份。
gbase> SELECT
ADD_MONTHS(TO_DATE('2020-3-15','YYYY-MM-DD'),3) AS f_Show
FROM dual;
+------------+
| f_Show
|
+------------+
| 2020-06-15 |
+------------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
776
示例4:date 为TO_DATE()函数,且TO_DATE()函数的参数为日期时间格式。
gbase> SELECT ADD_MONTHS(TO_DATE('2020-3-15
12:20:31','YYYY-MM-DD HH24:MI:SS'),3) AS f_Show FROM dual;
+---------------------+
| f_Show
|
+---------------------+
| 2020-06-15 12:20:31 |
+---------------------+
1 row in set
示例5:8 月31 日是8 月份最后一天,增加3 个月后,是11 月份,11 月共有30
天,因此结果就是“2019-11-30”。
gbase> SELECT
ADD_MONTHS(TO_DATE('2019-8-31','YYYY-MM-DD'),3) AS f_Show
FROM dual;
+------------+
| f_Show
|
+------------+
| 2019-11-30 |
+------------+
1 row in set
示例6:11 月30 日是11 月份最后一天,减少1 个月后,是10 月份,10 月共有
31 天,因此结果就是“2019-10-30”。
gbase> SELECT
ADD_MONTHS(TO_DATE('2019-11-30','YYYY-MM-DD'),-1) AS f_Show
FROM dual;
+------------+
| f_Show
|
+------------+
| 2019-10-30 |
+------------+
1 row in set
示例7:
2 月28 日是2 月份最后一天,
减少1 个月后,
是1 月份,
默认mode 为0,
则返回“2020-01-28”。
gbase> SELECT
ADD_MONTHS(TO_DATE('2020-02-28','YYYY-MM-DD'),-1) FROM dual;
+---------------------------------------------------+
| ADD_MONTHS(TO_DATE('2020-02-28','YYYY-MM-DD'),-1) |
+---------------------------------------------------+
| 2020-01-28
|
+---------------------------------------------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
777
1 row in set (Elapsed: 00:00:00.01)
若mode 为1,则返回“2020-01-31”。
gbase> SELECT
ADD_MONTHS(TO_DATE('2020-02-28','YYYY-MM-DD'),-1,1) FROM
dual;
+-----------------------------------------------------+
| ADD_MONTHS(TO_DATE('2020-02-28','YYYY-MM-DD'),-1,1) |
+-----------------------------------------------------+
| 2020-01-28
|
+-----------------------------------------------------+
1 row in set (Elapsed: 00:00:00.01)

步骤1 创建资源消费组并关联用户
create consumer group group_high
comment = 'users for high';
create consumer group group_low
comment = 'users for low';
alter consumer group group_high
add user usera;
alter consumer group group_low
add user userb;
步骤2 创建资源池
create resource pool static_pool_high(
cpu_percent=90,
max_memory=10000,
max_temp_diskspace= 10000,
max_disk_space= 10000,
max_disk_writeio=1000,
max_disk_readio=1000) TYPE static;
create resource pool static_pool_low(
cpu_percent=10,
max_memory=10000,
max_temp_diskspace= 10000,
max_disk_space= 10000,
max_disk_writeio=1000,
max_disk_readio=1000) TYPE static;
create resource pool pool_high(
priority=1,
cpu_percent=100,
max_memory=4000,
max_temp_diskspace=50000,
max_disk_space=50000,

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
516
max_disk_writeio=600,
max_disk_readio=600,
max_activetask=200,
task_max_parallel_degree=100,
task_waiting_timeout=100000,
task_running_timeout=100000)
type dynamic base on static_pool_high;
create resource pool pool_low(
priority=1,
cpu_percent=100,
max_memory=4000,
max_temp_diskspace=50000,
max_disk_space=50000,
max_disk_writeio=600,
max_disk_readio=600,
max_activetask=200,
task_max_parallel_degree=100,
task_waiting_timeout=100000,
task_running_timeout=100000)
type dynamic base on static_pool_low;
步骤3 创建资源计划
create resource plan
resource_plan
comment = 'resource plan';
步骤4 创建资源指令计划
create resource directive directive1
(plan_name = 'resource_plan',
pool_name = 'pool_high',
group_name = 'group_high',
comment = 'high user resource usage ');
create resource directive directive2
(plan_name = 'resource_plan',
pool_name = 'pool_low',
group_name = 'group_low',

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
517
comment = 'low user resource usage ');
步骤5 激活计划
active resource plan resource_plan on vc vc1;
注意

由于RH6.x/SUSE11 等低版本的操作系统存在内核缺陷,可能会导致大负载的情况下,
操作系统宕机。

建议在RH7.3/SUSE12 以上版本的操作系统中使用多静态资源池控制。

onconfig.std 值
未设置

pathname = FAILOVER_CALLBACK 配置参数指定的脚本全路径名。
生效
编辑 onconfig 文件并重启数据库服务器之后。
用法
当数据库服务器从辅助服务器向主服务器或标准服务器转换时,数据库服务器执行
FAILOVER_CALLBACK 指定的脚本。FAILOVER_CALLBACK 设置为脚本的全路径名。