返回首页

gbase数据、南大通用产品文档:GBase8sDATETIME 数据类型

更新日期:2024年09月11日

DATETIME 数据类型会存储以日历日期和一天中的时间表示的瞬间时刻。
您选择存储 DATETIME 值的精确度;其精度范围可从一年到几分之一秒。
DATETIME 将数据值存储为在数据类型声明中表示每个时间单位(年、月和日等等)
的连续字段序列。
用于指定 DATETIME 数据类型的字段限定符具有以下格式:
DATETIME largest_qualifier TO smallest_qualifier
这类似于 INTERVAL 字段限定符,但 DATETIME 表示时间点而不是时间范围
(INTERVAL 表示时间范围)。DATETIME 和 INTERVAL 限定符之间存在如下差异:
DATETIME 关键字替换 INTERVAL 关键字。
DATETIME 字段限定符不能指定 largest_qualifier 时间单位的非缺省精度。
DATETIME 数据类型的字段限定符可以包含 YEAR、MONTH 和更小的时间单位,而
包含 DAY 字段限定符(或更小时间单位)的 INTERVAL 数据类型不能还包含 YEAR 或
MONTH 字段限定符。
如果 smallest_qualifier 未指定大于 largest_qualifier 的时间单位,那么
DATETIME 数据类型的 largest_qualifier 和 smallest_qualifier 可以是下表列出的任
何字段。(最大和最小时间单位可以相同;例如,DATETIME YEAR TO YEAR。)

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 93 -
表 4. DATETIME 字段限定符
限定符字段
有效条目
YEAR
从 1 到 9,999(公元)编号的年份
MONTH
从 1 到 12 编号的月份
DAY
从 1 到 31 编号的日(适合于月)
HOUR
从 0(午夜)到 23 编号的小时
MINUTE
从 0 到 59 编号的分钟
SECOND
从 0 到 59 编号的秒
FRACTION
最多具有 5 位小数位的秒的十进制小数。缺省小数位是 3 位(千
分之一秒)。对于 smallest_qualifier,要指定另一个小数位,请写
FRACTION(n),其中 n 是位数(从 1 到 5)。

DATETIME 列的声明不需要包括全部 YEAR 至 FRACTION 时间单位范围。它可以包括
这些时间单位的任何连续子集,或者甚至仅包括单个时间单位。
例如,如果每个输入的值都包含连续的时间单位系列的信息,就可以在声明为 YEAR
TO MINUTE 的列中输入 MONTH TO HOUR 值。但是,不能只输入 MONTH 和 HOUR 的值;条
目中还必须包括 DAY 的值。
如果使用 DB-Access TABLE 菜单,并且未指定 DATETIME 限定符,那么会指定缺省
DATETIME 限定符 YEAR TO YEAR。
有效的 DATETIME 文字必须包含 DATETIME 关键字、要输入的值和字段限定符。如前
面说明的那样,由于输入的值可包含比对列声明的字段数少的字段,所以必须包括这些限
定符。第一个字段和最后一个字段的可接受限定符与表 1列出的有效 DATETIME 字段的列
表完全相同。
将字段限定符的值用整数表示并用定界符隔开这些限定符。下表列出了在缺省的美国
英语语言环境中与 DATETIME 值配合使用的定界符。(这些定界符是在 INTERVAL 值中使
用的定界符的超集。)
表 5. 与 DATETIME 配合使用的定界符
定界符
在 DATETIME 文字中的位置
连字符
( - )( = )
在 YEAR、MONTH 和 DAY 时间单位值之间
空格 ( )
在 DAY 与 HOUR 时间单位值之间
冒号 ( : )
在 HOUR、MINUTE 与 SECOND 时间单位值之间
小数点 ( . )
在 SECOND 与 FRACTION 时间单位值之间

下图显示具有定界符的 DATETIME YEAR TO FRACTION(3) 值。图 2. 具有定界符的
DATETIME 值示例

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 94 -

当输入具有比列中的时间单位字段少的时间单位字段的值时,就会自动扩展输入的值
以填满所有声明的时间单位字段。如果漏掉任何较高有效字段(即,时间单位大于包含的
任何时间单位),那么会用系统时钟日历中的那些时间单位的当前值自动填充这些字段。
如果漏掉任何不太重要的字段,那么在条目中会用零(或对 MONTH 和 DAY 使用 1)填充
这些字段。
还可以将 DATETIME 值作为字符串输入。字符串必须包括 DATETIME 列中定义的每个
字段的信息。下面示例中的 INSERT 语句显示了作为字符串输入的 DATETIME 值:
INSERT INTO cust_calls (customer_num, call_dtime, user_id,
call_code, call_descr)
VALUES (101, '2001-01-14 08:45', 'maryj', 'D',
'Order late - placed 6/1/00');
如果将 call_dtime 声明为 DATETIME YEAR TO MINUTE,那么字符串必须包含年、
月、日、小时和分钟字段的值。
如果字符串不包含所有已声明字段的信息(或如果它添加了其他字段),那么数据库
服务器会返回错误。
除了 year 和 fraction 字段之外,DATETIME 列的所有字段都是 2 位数。year 字
段存储为 4 位。当在年份字段中输入两位值时,缩写的年份扩展为四位的方式取决于
DBCENTURY 环境变量的设置。
例如:如果输入 02 作为 year 值,那么将该年份是解释为 1902、2002 还是 2102
取决于 DBCENTURY 的设置和执行时系统时钟日历的值。如果不设置 DBCENTURY,那么在
缺省情况下,将追加当前年份的前导数字。

小数字段需要 n 位数,其中 1 ≤ n ≤ 5,上舍入为偶数。可以使用以下公式(上
舍入为整数个字节)来计算 DATETIME 值需要的字节数:
(所有字段的总位数)/2 + 1
例如,YEAR TO DAY 限定符总共需要八位(四位用于年,两位用于月,两位用于
日)。根据公式,此数据值需要 5(即 (8/2) + 1)个字节的存储器。
当数据库服务器在 SQL 语句中从操作系统获取当前时间时,USEOSTIME 配置参数可
能会影响亚秒级粒度。有关详细信息,请参阅 GBase 8s 管理员参考。
使用 ESQL API 时,DBTIME 环境变量会影响 DATETIME 格式。GL_DATE 和 DBDATE

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 95 -
环境变量的非缺省语言环境和设置还会影响日期时间数据的显示。但是,它们不会影响
DATETIME 列的内部存储格式。
如果指定的语言环境不是美国英语,那么该语言环境为 DATETIME 值定义特定于文化
的显示格式。要更改缺省显示格式,更改 GL_DATETIME 环境变量的设置。当具有非缺省
语言环境的数据库使用非缺省 GL_DATETIME 设置时,USE_DTENV 环境变量必须设置为
1,数据库服务器才能在以下运算中正确处理本地化的 DATETIME 值:
使用 DB-Access 的 LOAD 或 UNLOAD 功能
使用 dbexport 或 dbimport 迁移实用程序
对 CREATE EXTERNAL TABLE 语句定义的数据库表或对象使用 SQL 的 DML 语句。

Disk 瓶颈
在8s 集群节点监控导航栏,点击操作系统监控的Disk 瓶颈,即进入Disk
瓶颈监控界面。
本界面包括DISK I/O Busy Rate 趋势图、DB Disk Reads/Writes 趋势图、
DB Page Reads/Writes 趋势图。
趋势图支持点击图中任何位置,会出现一条竖线,以表格的方式显示在该
竖线、该时间点上各个趋势图所对应指标的值。
DISK I/O Busy Rate 趋势图,包含指标如下:
DISK I/O Busy Rate,即各个磁盘的繁忙率。
DB Disk Reads/Writes 趋势图,包含指标如下:
DB Disk Reads、DB Disk Writes,即数据库中磁盘的Reads 数、数据
库中磁盘的Writes 数。
DB Page Reads/Writes 趋势图,包含指标如下:



统一数据平台监控与运维系统用户手册
南大通用数据技术股份有限公司

- 19 -
DB Page Reads、DB Page Writes,即数据库中DB Page 的Reads 数、
数据库中DB Page 的Writes 数。
趋势图界面显示如下:

录访问控制
请确保为 SSO 认证建立数据库服务器。
要获取更多信息,
请参阅
《GBase 8s 安全指南》

的“单点登录访问控制”部分。
通过使用 DriverManager.getConnection() 方法,
并将连接 URL 中的
“通讯支持模块”
(CSM)
设置为服务主体,可随同 JDBC 使用单点登录(SSO)访问控制。请用 SSO 访问控制来
替代用户 ID 和口令选项。
1.
修改连接 URL,以便于它包括服务主体。
服务主体由数据库服务器名称和 SSO 领域组成。
CSM=(SSO=database_server@realm,ENC=true)
ENC=true 设置意味着启用“通用安全服务”(GSS)加密。ENC=true 设置是可选
的,因为在缺省情况下,它的值为 true。如果您不想启用 GSS 加密,则将该值设
置为 false:ENC= false。
要了解连接 URL 的完整语法,请参阅 数据库 URL 的格式。
2.
请以下列代码来创建登录配置文件:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
}
3. 将 java.security.auth.login.config 属性设置为登录配置文件完全路径名称,后
跟 TestSso 类,来运行应用程序。
以下为一示例,其中 IfmxLog.conf 为登录配置文件:

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 61 -
java -Djava.security.auth.login.config=mydirectory/IfmxLog.conf TestSso