返回首页

gbase数据、南大通用产品文档:GBase8aGetDateTime 方法

更新日期:2024年09月11日

获取指定列的DateTime 类型值。

GBase 8a 程序员手册ADO.NET 篇


- 220 -

南大通用数据技术股份有限公司

重载列表
1) 根据给定的序号,获取指定列的DateTime 类型值。
GetDateTime(Int32)
2) 根据给定的列名,获取指定列的DateTime 类型值。
GetDateTime(String)

注释
注意:GBase 数据库允许Date 列包含值 0000-00-00 和DateTime 列包含
0000-00-00 00:00:00。然而.NET DateTime 数据类型不能包含或者表现这些数
值。要从可能包含0 值的列中读取一个日期或日期时间值时,可以使用
GetGBaseDateTime 方法,
并且在连接字符串中指定 Allow
Zero
Datetime 参数。
要获取这个参数的更多信息,请参考5.1.1 连接字符串章节中的连接参数表。

(1) 新增 TIMESTAMP 数据类型
TIMESTAMP 类型与 DATETIME 类型同义,唯一不同的是,其中指定小数秒
精度FRACTION 时间单位值是 1 到 6 范围内的数字,缺省值为 0。
(2)
时间型数据算术运算功能增强
本版本在原有基础上支持 DATETIME 、
TIMESTAMP 类型值与浮点数相加减,
以及 DATETIME(或 TIMESTAMP)类型值相减(通 过 JDBC 接口)得到以天为单位
的浮点数的算术运算。
与数字常量运算:
可以将 DATETIME、
TIMESTAMP 值加或减数字常量。
该数字常量可以是整数
和浮点 数。GBase 8s 数据库将运算⽇期表达式中的数字常量解释为天数。例如
SYSDATE +1 是 明天,SYSDATE +(10/1440)表⽰从现在起⼗分钟。
DATETIME 值或TIMESTAMP 值可以来⾃下列源:类型为DATETIME (或
TIMESTAMP)的列或程序变量SYSDATE 关键字CURRENT,
关键字TO_DATE() 函数,
浮点数不能⼤于11574。
例如,SELECT TO_CHAR(
TO_DATE(‘20170101 08:00:00’,’YYYY-MM-DD HH24:MI:SS’)+1.25, YYYY-MM-DD
HH24:MI:SS’)
FROM DUAL;
Result: 2017-01-02 14:00:00
DATETIME 值或TIMESTAMP 值运算可以将 DATETIME 值( 或
TIMESTAMP 值)互相进⾏减法运算。
⽇期可以是任何顺序。
DATETIME 值(或 TIMESTAMP 值)可以来⾃下列源: 类

What’s new in GBase 8s V8.8


南大通用数据技术股份有限公司
30/60


型为 DATETIME (或 TIMESTAMP) 的列或程序变量 SYSDATE 关键字CURRENT 关
键字TO_DATE() 函数
其运算结果可以是以下两种类型:
l 正的或负的 INTERVAL 值。第⼀个 DATETIME 值确定结果的精度,它包
含与第⼀个操作数相同的时间单位。
l 正的或负的浮点数(以天为单位)。这种情况只能通过 JDBC 接⼜返回。
例如,
假定当前系统时间为 2017 年 1 ⽉ 3 ⽇ 14:00:00 ,
执⾏以下语句,
⽤户通 过 JDBC 接⼜得到⼀个以天为单位的浮点数:
SELECT SYSDATE-TO_DATE(‘20170102 08:00:00’,’YYYY-MM-DD HH24:MI:SS’)
FROM DUAL;
Result: 1.25(通过 JDBC 接⼜返回)
如果第⼆个 DATETIME 值(或 TIMESTAMP 值)具有的字段⽐第⼀个值少,那
么会⾃ 动增加第⼆个操作数的精度以与第⼀个值相匹配。
在下⾯的⽰例中,从 DATETIME YEAR TO MINUTE 值中减去 DATETIME YEAR
TO HOUR 值,从⽽得到正的时间间隔值 60 天 1 ⼩时 30 分钟。由于第⼆个操
作数中不包括分 钟,所以在执⾏减法之前,数据库服务器将第⼆个操作数的分
钟值设置为 0。
DATETIME (2003-9-30 12:30) YEAR TO MINUTE
- DATETIME (2003-8-1 11) YEAR TO HOUR
Result: INTERVAL (60 01:30) DAY TO MINUTE
如果第⼆个 DATETIME 操作数的字段⽐第⼀个操作数多(不管额外字段的精
度是⼤于 还是⼩于第⼀个操作数中的字段),
在计算过程中都会忽略第⼆个值中
附加的时间单位字 段。这指⽰第⼆个⽇期⽐第⼀个晚。

What’s new in GBase 8s V8.8


南大通用数据技术股份有限公司
31/60


DATETIME (2005-9-30) YEAR TO DAY
- DATETIME (10-1) MONTH TO DAY
Result: INTERVAL (-1) DAY TO DAY [假定当前年为 2005]
您可以使⽤ mi_datetime_compare() 函数⽐较两个 DATETIME 值。⽤
INTERVAL 值处理 DATETIME 算术INTERVAL 操作数可以将 INTERVAL 值与
DATETIME 值相加或从DATETIME 值中减去。在这两种情况下,结果都是
DATETIME 值。
如果将 INTERVAL 值与 DATETIME 值相 加,
那么值的顺序不重要;
但是,
如果进⾏减法运算,
那么 DATETIME 值必须在前⾯。
加 或减正的 INTERVAL
值会使 DATETIME 结果时间推后或提前。下⾯⽰例中的表达式使⽇期 提前 3
年 5 个⽉:
DATETIME (2000-8-1) YEAR TO DAY
+ INTERVAL (3-5) YEAR TO MONTH
Result: DATETIME (2004-01-01) YEAR TO DAY
要点: 估计加或减的逻辑。请注意,有 28、29、30 或 31 天的⽉份以及有
365 或 366 天的年份。
EXTEND 函数DATETIME 数据类型EXTEND 函数在⼤多数情况下,当操作数
没有相同的 精度时数据库服务器⾃动调整计算。但是,在某些上下⽂中,必须
显式调整⼀个值的精确 才能执⾏计算。如果加上或减去的 INTERVAL 值具有未
包括在 DATETIME 值中的字段,那 么必须使⽤ EXTEND 函数来增加 DATETIME
值的精度。
(有关 EXTEND 函数的更多信息,
请参阅 GBase 8s SQL 指南:语法 中
的 Expression 段。)
TO 关键字EXTEND 函数YEAR 关键字EXTEND 函数例如,不能从上⾯⽰例
中具有 YEAR TO DAY 字段限定符的 DATETIME 值中减去 INTERVAL MINUTE TO

What’s new in GBase 8s V8.8


南大通用数据技术股份有限公司
32/60


MINUTE 值。但是,如下 ⾯的⽰例所⽰,可以使⽤EXTEND 函数来执⾏此计算:
EXTEND (DATETIME (2008-8-1) YEAR TO DAY, YEAR TO MINUTE) - INTERVAL (720)
MINUTE(3) TO MINUTE
Result:DATETIME (2008-07-31 12:00) YEAR TO MINUTE
字段限定符EXTEND 函数EXTEND 函数允许您显式将 DATETIME 精度从
YEAR TO DAY 增加⾄ YEAR TO MINUTE。这使得数据库服务器能够执⾏计算,并
且⽣成 YEAR TO MINUTE 的扩展精度。

取值:[0,32767]
默认值:32767
说明:设置longblob 数据达到多大时才生成单独的dat 文件落盘。
默认和最大值为32767。
修改方式:
可使用set 语句修改值也可在配置文件中修改值。
适用于session、
global
范围均可。