暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AntDB 使用教程 / Oracle兼容 / 数据类型3

tocata 2024-08-19
42

二进制数据

BLOB 数据类型允许存储二进制字符串。

名称存储空间描述
BLOB如果二进制串的长度小于 127 个字节,实际 要求的长度是二进制串长度加上 1 个字节, 如果二进制串长度大于等于 127 个字符,那 么长度为二进制串的长度加上 4 个字节。可变长度的二进制字符串,最大 存储 2G 的数据

Blob 类型的数据,select 的结果是如果是 16 进制的数据,可以通过设置参数 bytea_output = 'escape',来显示实际插入的数据。

antdb=#  CREATE TABLE tb(id int, a blob);
CREATE TABLE
antdb=# INSERT INTO tb VALUES(1, 'abcd');
INSERT 0 1
antdb=# SELECT * FROM tb;
 ID |     A      
----+------------
  1 | \x61626364
(1 row)
antdb=# SET bytea_output = 'escape';
SET
antdb=#  SELECT * FROM tb;
 ID |  A   
----+------
  1 | abcd
(1 row)
复制

二进制串是一个 8 位字节(或字节)的序列-与字符串相比,二进制串有两点不同:

首先,二进制串允许存放值为 0 的 8 位字节和其他无法打印显示的八位字节(定义的范围超过32-126);

其次,在二进制串上进行的操作实际是处理字节,与之相反的是对字符串的编码和处理取决于本地设置。

日期/时间类型

AntDB 支持在下面表中列出的日期/时间类型。

名称存储空间 大小描述最低值最高值精确度
DATE8 字节日期和时间公 元 前 4713年公元 294276年1 秒
TIMESTAMP [ (p) ]8 字节日期和时间公 元 前 4173年公元 294276年1 毫秒
INTERVAL16 字节时间间隔1 毫秒

Date 类型底层实际存储的是年月日时分秒,如果不指定时间,则会显示年月日 00:00:00。

timestamp(p):我们可以在 TIMESTAMP 类型的值上指定一个代表精度的值 p,用来指定在秒字段中能够保留的小数位数。参数 p 的取值范围在 0 到 6 之间,缺省值是 6,如果用户指定 p 的值大于 6,会自动转化为 6。

Interval:表示时间间隔,可以和时间进行加减操作。与 Oracle 相比,AntDB 对 Interval 并没有完全支持,具体见下文。



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论