返回首页

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

更新日期:2024年09月11日

GBaseParameter 成员
公共构造函数
构造函数
描 述
GBaseParameter
重载函数。初始化GBaseParameter 类
的一个新实例。
公共属性
属 性
描 述
DbType
获取或设置参数的DbType 类型。
Direction
获取或设置一个指明参数是只能输入、
只能输出、
双向,
还是一个存储过程的
返回值。
IsNullable
获取或设置一个值指明参数是否可以
是null 值。
GBaseDbType
获取或设置参数的GBaseDbType 类型。

ParameterName
获取或设置GBaseParameter 的名字。



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 279 -
属 性
描 述
Precision
获取或设置用于显示Value 属性的最
大位数。
Scale
获取或设置获得的Value 的小数位位
数。
Size
获取或设置列中数据按字节计算的最
大大小。
SourceColumn
获取或设置源列的名称,
该源列映射到
DataSet 并用于加载或返回 Value 时
使用。
SourceVersion
获取或设置用于装载Value 时的
DataRowVersion。
Value
获取或设置参数的值。
公共方法
方 法
描 述
Equals (继承于Object)
判断指定的对象是否等于当前的对象。

ResetDbType
重置与此 GBaseParameter 关联的类
型。
GetType (继承于Object)
获取当前实例的类型。
ToString
获得一个包含ParameterName 的字符
串。

函数说明
以下函数执行日期计算:
加法操作:DATE_ADD(date,INTERVAL expr type)
减法操作:DATE_SUB(date,INTERVAL expr type)
表5- 20 参数说明
参数名称


date
是一个DATETIME 或DATE 值,指定一个日期的开始。expr
是一个表达式,用来指定从起始日期添加或减去的时间间隔
值。
dateexpr
是一个字符串,对于负值的时间间隔,它可以以一个“-”开
头。
type
关键词,它指示了表达式被解释的方式。
INTERVAL
关键字和类型修饰符大小写不敏感。
表5- 21 相关的type 和expr 参数
type 值
期望的expr 格式
MICROSECOND
MICROSECONDS
MILLISECOND
MILLISECONDS
SECOND
SECONDS
MINUTE
MINUTES
HOUR
HOURS
DAY
DAYS
WEEK
WEEKS
MONTH
MONTHS
QUARTER
QUARTERS
YEAR
YEARS
SECOND_MICROSECOND
'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND
'MINUTES:SECONDS.MICROSECONDS'

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
784
type 值
期望的expr 格式
MINUTE_SECOND
'MINUTES:SECONDS'
HOUR_MICROSECOND
'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND
'HOURS:MINUTES:SECONDS'
HOUR_MINUTE
'HOURS:MINUTES'
DAY_MICROSECOND
'DAYS:HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND
'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE
'DAYS HOURS:MINUTES'
DAY_HOUR
'DAYS HOURS'
YEAR_MONTH
'YEARS-MONTHS'
说明

在expr 的格式中,GBase 8a MPP Cluster 允许任何字符作为定界符。表中
所显示的是建议的定界字符。
如果date 参数是一个DATE 值,并且计算的
间隔仅仅有YEAR、MONTH 和DAY 部分(没有时间部分),那么返回
值也是一个DATE 值。否则返回值是一个DATETIME 值。

如果表达式另一边是DATE 或DATETIME 类型,
那么INTERVAL expr type
允许出现在“+”的任何一边。对于“-”来说,INTERVAL expr type 值只
能出现在右边,因为从一个时间间隔减去一个DATE 或DATETIME 值没
有意义。

DATE_ADD(date,INTERVAL expr type)、DATE_SUB(date,INTERVAL expr
type)使用时需注意,当参数type 是复合时间单位,并且组成type 的两个
高低单位之间还包含其他单位时(如type 为HOUR_MICROSECOND,
HOUR 与MICROSECOND 之间还包含有MINUTE、SECOND),expr 参
数需要按顺序声明高低单位及其中间包含的所有单位的值,expr 参数值将
会从低单位顺次向高单位进行填充,不会忽略低单位与高单位之间包含的
其他单位。请严格按照上表type 和expr 对应的格式书写。如type 为
HOUR_MICROSECOND 的expr 值应为
02:00:00.000002 ,对应于
HOURS:MINUTES:SECONDS.MICROSECONDS。
例:
select
date_add('2022-02-16
18:00:00',interval
'02:00:00.000002'
HOUR_MICROSECOND);
日期增加了2HOUR2MICROSECOND ,结果为:2022-02-16
20:00:00.000002
select
date_add('2022-02-16
18:00:00',interval
'2:2'
HOUR_MICROSECOND);
日期增加了2SECOND2MICROSECOND ,结果为:2022-02-16
18:00:02.000002

如果用户从一个日期类型中加或减一个包含时间的值,结果会自动调节然
后转换成日期类型。

如果用户使用了不正确的日期,返回结果将是NULL。

如果用户增加MONTH、YEAR_MONTH 或YEAR,并且结果日期的天比
新月份的最大天数还大,那么它将被调整到新月份的最大天数。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
785
示例
示例1:将“2020-08-30 23:59:59”加1 秒。
gbase> SELECT '2020-08-30 23:59:59' + INTERVAL 1 SECOND FROM
dual;
+--------------------------------------------+
| '2020-08-30 23:59:59' + INTERVAL 1 SECOND
|
+--------------------------------------------+
| 2020-08-31 00:00:00
|
+--------------------------------------------+
1 row in set
示例2:使用DATE_ADD()函数,将“2020-08-30 23:59:59”加1 秒,执行结果与
示例1 相同。
gbase> SELECT DATE_ADD('2010-08-30 23:59:59',INTERVAL 1 SECOND)
FROM dual;
+---------------------------------------------------+
| DATE_ADD('2010-08-30 23:59:59',INTERVAL 1 SECOND) |
+---------------------------------------------------+
| 2010-08-31 00:00:00
|
+---------------------------------------------------+
1 row in set
示例3:将“2020-12-31 23:59:59”加1 天。
gbase> SELECT INTERVAL 1 DAY + '2020-12-31 23:59:59' FROM dual;
+----------------------------------------+
| INTERVAL 1 DAY + '2020-12-31 23:59:59' |
+----------------------------------------+
| 2021-01-01 23:59:59
|
+----------------------------------------+
1 row in set
示例4:使用DATE_ADD()函数,将“2020-12-31 23:59:59”加1 天,执行结果与
示例3 相同。
gbase> SELECT DATE_ADD('2020-12-31 23:59:59',INTERVAL 1 DAY)
FROM dual;
+------------------------------------------------+
| DATE_ADD('2020-12-31 23:59:59',INTERVAL 1 DAY) |
+------------------------------------------------+
| 2021-01-01 23:59:59
|
+------------------------------------------------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
786
示例5:DATE_ADD()函数,type 类型为“MINUTE_SECOND”。
gbase> SELECT DATE_ADD('2020-12-31 23:59:59', INTERVAL '1:1'
MINUTE_SECOND) FROM dual;
+---------------------------------------------------------------+
| DATE_ADD('2020-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) |
+---------------------------------------------------------------+
| 2021-01-01 00:01:00
|
+---------------------------------------------------------------+
1 row in set
示例6:DATE_SUB()函数,type 类型为“DAY_SECOND”。
gbase> SELECT DATE_SUB('2020-01-01 00:00:00', INTERVAL '1 1:1:1'
DAY_SECOND) FROM dual;
+----------------------------------------------------------------+
| DATE_SUB('2020-01-01 00:00:00', INTERVAL '1 1:1:1' DAY_SECOND) |
+----------------------------------------------------------------+
| 2019-12-30 22:58:59
|
+----------------------------------------------------------------+
1 row in set
示例7:DATE_ADD()函数,type 类型为“DAY_HOUR”。
gbase> SELECT DATE_ADD('2020-01-01 00:00:00', INTERVAL '-1 10'
DAY_HOUR) FROM dual;
+------------------------------------------------------------+
| DATE_ADD('2020-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR) |
+------------------------------------------------------------+
| 2019-12-30 14:00:00
|
+------------------------------------------------------------+
1 row in set
示例8:DATE_ADD()函数,type 类型为“DAY_HOUR”。
因为“-1”是减去1 天,所以小时“-10”,也是进行减法,这个操作,取决于最
前面的操作符号。下面示例里的写法,等价于示例7 的计算。
gbase> SELECT DATE_ADD('2020-01-01 00:00:00', INTERVAL '-1 -10'
DAY_HOUR) FROM dual;
+-------------------------------------------------------------+
| DATE_ADD('2020-01-01 00:00:00', INTERVAL '-1 -10' DAY_HOUR) |
+-------------------------------------------------------------+
| 2019-12-30 14:00:00
|
+-------------------------------------------------------------+
1 row in set
示例9:DATE_SUB()函数,type 类型为“DAY”。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
787
gbase> SELECT DATE_SUB('2020-01-02', INTERVAL 31 DAY) FROM
dual;
+-----------------------------------------+
| DATE_SUB('2020-01-02', INTERVAL 31 DAY) |
+-----------------------------------------+
| 2019-12-02 00:00:00
|
+-----------------------------------------+
1 row in set
示例10:DATE_ADD()函数,type 类型为“SECOND_MICROSECOND”。
gbase> SELECT DATE_ADD('2020-08-31 23:59:59.000002',INTERVAL
'1.999999' SECOND_MICROSECOND) AS DATE_ADD FROM dual;
+----------------------------+
| DATE_ADD
|
+----------------------------+
| 2020-09-01 00:00:01.000001 |
+----------------------------+
1 row in set
示例11:在“2020-08-30”上加1 天。
gbase> SELECT DATE_ADD('2020-08-30', INTERVAL 1 DAY) FROM
dual;
+----------------------------------------+
| DATE_ADD('2020-08-30', INTERVAL 1 DAY) |
+----------------------------------------+
| 2020-08-31 00:00:00
|
+----------------------------------------+
1 row in set
示例12:在日期类型中加1 个小时,返回结果转换为“日期+时间”类型。
gbase> SELECT DATE_ADD('2020-01-01', INTERVAL 1 HOUR) FROM
dual;
+-----------------------------------------+
| DATE_ADD('2020-01-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2020-01-01 01:00:00
|
+-----------------------------------------+
1 row in set
示例13:在“2020-01-30”上加1 月。
gbase> SELECT DATE_ADD('2020-01-30', INTERVAL 1 MONTH) FROM
dual;
+------------------------------------------+
| DATE_ADD('2020-01-30', INTERVAL 1 MONTH) |

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
788
+------------------------------------------+
| 2020-02-29 00:00:00
|
+------------------------------------------+
1 row in set

GBA-02IS-0004
错误码
错误标识
错误信息
GBA-02IS-0004

Can't get a scn number from gcware
错误出现原因
从gcware 获取scn 错误
分析与建议
无法从gcware 处申请到scn 号,
可能是gcware 异常,
重试一次或者利用gcadmin
查看一下是否正常