GBase 8a MPP Cluster——字符类型、二进制数据类型、日期和时间类型

文章介绍了数据库中常见的数据类型,包括CHAR和VARCHAR两种字符类型,它们在存储和处理字符串时的差异,以及TEXT类型的使用建议。二进制数据类型BLOB用于存储大型二进制对象,有特定的存储限制。日期和时间类型如DATE、TIME、DATETIME和TIMESTAMP的区别和使用场景也被详细阐述,其中DATETIME和TIMESTAMP在精度和范围上的不同被突出强调。
摘要由CSDN通过智能技术生成

字符类型

在这里插入图片描述

1、CHAR(m)

CHAR 是 CHARACTER 的缩写。m 表示该列中字符串的长度,其范围是 1 到255 个字符。

当存储的字符长度小于指定的长度 m 时,在字符串右边用空格补齐。当读取 CHAR 值时,填充的空格依旧保留。

如果给一个定义为 CHAR 类型的列插入一个超出最大长度的字符串,那么系统将报告错误信息。建议使用 VARCHAR 数据类型。

2、VARCHAR

变长字符串,m 表示该列中串的长度,其范围是 1 到 10922 个字符。

当存储 VARCHAR 类型的数据时,不会用空格填充补足列定义长度,存储的数据包含空格时,保留空格。

示例 1:VARCHAR 数据类型不会补足列定义的长度,但会保留插入的数据中的空格。
示例中用到的表及数据:

create table products(a varchar(100));

insert into products(a) values('高山莫衣');
insert into products(a) values('   GBase 8a');


select a, length(a) as length, char_length(a) as char_length from products;

select a from products where a = '高山莫衣';

3、TEXT

TEXT 类型仅仅是为了兼容其它数据库的类型,推荐使用 VARCHAR 类型。

TEXT 类型最大支持 10922 字符的存储长度,定义 TEXT 列时,不能为它指定 DEFAULT 值。

4、二进制数据类型


BLOB 保存二进制数据,最大长度为 32767 字节。

使用 BLOB 数据类型,有如下约束:
BLOB 列支持 32KB 的存储容量。
创建表时,BLOB 列不可以有 DEFAULT 值。
查询语句中,BLOB 列不支持过滤条件。
查询语句中,BLOB 列不支持 OLAP 函数。

5、日期和时间类型

在这里插入图片描述
在这里插入图片描述
当使用日期和时间类型时,用户应当提供正确的格式:如,YYYY-MM-DD(年-月-日)、YYYY-MM-DD HH:MI:SS(年-月-日 时:分:秒)。

5.1 DATE

日期类型。支持的范围是‚0001-01-01到‚9999-12-31。GBase 8a MPP Cluster 以‚YYYY-MM-DD格式显示 DATE 值。
示例 1:插入一个标准的 DATE 值。

create table products(productDate date);
insert into products(productDate) values('2019-01-08');
select productDate from products;

insert into products(productDate) values(Null),('2017-09-02');
select productDate from products;

5.2 TIME

GBase 8a MPP Cluster 以‚HH:MI:SS‛格式(或‚HHH:MI:SS‛格式)检索和显示 TIME 值,该值为字符串。

TIME 的范围是‚-838:59:59‛到‚838:59:59‛。TIME 类型不仅可以用于表示一天的时间,而且可以用来表示所经过的时间或两个事件之间的时间间隔(这可能比 24 小时大许多或是一个负值)。

对于以字符串指定的包含时间定界符的 TIME 值,小于 10 的时、分或秒,可以不指定为两位数值。‚8:3:2‛与‚08:03:02‛是一致的。
示例 1:插入一个合法的 TIME 值。

create table products(productDate time);
insert into products(productDate) values('12:34:56');
select productDate from products;

insert into products(productDate) values(Null),('92:09:04');
select productDate from products;

5.3 DATETIME

GBase 8a MPP Cluster 以‚YYYY-MM-DD HH:MI:SS.ffffff‛格式显示DATETIME 值。其中 ffffff 表示微秒格式。日期和时间的组合类型。支持的范围是‚0001-01-01 00:00:00.000000到‚9999-12-31 23:59:59.999999。

create table products(productDate datetime);
insert into products(productDate) values('2012-08-21 12:34:56');
select productDate from products;

insert into products(productDate) values(Null),('2017-12-12 92:09:04');
select productDate from products;

insert into products(productDate) values(NOW());
select * from products;

示例 4:插入一个带有微秒的 DATETIME 数值。

create table products(productDate datetime);
insert into products(productDate) values('2012-08-21 12:34:56.123456');
select productDate from products;

5.4 TIMESTAMP

TIMESTAMP 类型仅仅是为了兼容 SQL 标准,因此,不建议使用者在实际的项目应用场景使用此数据类型,推荐使用 DATETIME 数据类型。
TIMESTAMP 的格式为‚YYYY-MM-DD HH:MI:SS‛,支持的范围是‚1970-01-01 08:00:01到2038-01-01 00:59:59。

create table t (
 a int,
 b timestamp default current_timestamp on update current_timestamp,
 c timestamp default '2013-01-02 12:21:12'
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高山莫衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值