时许数据库clickhouse数据类型

一:查看ck支持的数据类型

SELECT * FROM system.data_type_families

 

 

二:数值类型

数值类型
Int类型
固定长度的整数类型又包括有符号和无符号的整数类型。

 

 

 

 

 

 

 

 

 eg:插入的数据

INSERT INTO aa2 (pk,entr_px_float32,entr_px_float64) VALUES ('99921518',10.01,64.02);

 

 

 实际结果

Decimal类型

有符号的定点数,可在加、减和乘法运算过程中保持精度。ClickHouse提供了Decimal32、Decimal64和Decimal128三种精度的定点数,支持几种写法:

Decimal(P, S)

Decimal32(S)

数据范围:( -1 * 10^(9 - S), 1 * 10^(9 - S) )

Decimal64(S)

数据范围:( -1 * 10^(18 - S), 1 * 10^(18 - S) )

Decimal128(S)

数据范围: ( -1 * 10^(38 - S), 1 * 10^(38 - S) )

Decimal256(S)

数据范围:( -1 * 10^(76 - S), 1 * 10^(76 - S) )

其中:P代表精度,决定总位数(整数部分+小数部分),取值范围是1~76

​ S代表规模,决定小数位数,取值范围是0~P

根据P的范围,可以有如下的等同写法:

 

 注意点:不同精度的数据进行四则运算时,**精度(总位数)和规模(小数点位数)**会发生变化,两个不同精度的数据进行四则运算时,结果数据已最大精度为准

 

 

 eg:

entr_px_decemail32

Decimal(9, 4)

entr_px_decemail64

Decimal(18, 5)

entr_px_decemail128

Decimal(19, 3)

插入结果

99999.1234(5+4) 9999999999999.12345(13+5) 1234567890111111.123 (16+3) 成功
999999.123(6+3)     报错Decimal value is too big
99999.12345(5+5)    

成功

数据库值:99999.1234

 

时间类型

时间类型分为DateTime、DateTime64和Date三类。

Date类

用两个字节存储,表示从 1970-01-01 (无符号) 到当前的日期值。日期中没有存储时区信息。

CREATE TABLE t_date (x date) ENGINE=TinyLog;
INSERT INTO t_date VALUES('2020-10-01');
SELECT x,toTypeName(x) FROM t_date;
┌──────────x─┬─toTypeName(x)─┐
│ 2020-10-01 │ Date │
└────────────┴───────────────┘

 

DateTime类型

用四个字节(无符号的)存储 Unix 时间戳。允许存储与日期类型相同的范围内的值。最小值为 0000-00-00 00:00:00。时间戳类型值精确到秒(没有闰秒)。时区使用启动客户端或服务器时的系统时区。

 

 

DateTime64

需要存储毫秒纳秒,需要DateTime64

毫秒:create_time` DateTime64(3)

纳秒:create_time` DateTime64(9)

驱动使用新版jdbc 0.3.2+以上

 

参考文档:

https://blog.csdn.net/jmx_bigdata/article/details/109084721

 

posted on 2022-11-10 20:38  qiaoli  阅读(466)  评论(0编辑  收藏  举报

导航