跳至主要內容

数据类型

...大约 3 分钟

数据类型

基本数据类型

IoTDB 支持:

  • BOOLEAN(布尔值)
  • INT32(整型)
  • INT64(长整型)
  • FLOAT(单精度浮点数)
  • DOUBLE(双精度浮点数)
  • TEXT(字符串)

一共六种数据类型。

其中 FLOATDOUBLE 类型的序列,如果编码方式采用 RLETS_2DIFF 可以指定 MAX_POINT_NUMBER,该项为浮点数的小数点后位数,若不指定则系统会根据配置文件iotdb-datanode.properties文件中的 float_precision 项 配置。

当系统中用户输入的数据类型与该时间序列的数据类型不对应时,系统会提醒类型错误,如下所示,二阶差分编码不支持布尔类型:

IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, ENCODING=TS_2DIFF
error: encoding TS_2DIFF does not support BOOLEAN

时间戳类型

时间戳是一个数据到来的时间点,其中包括绝对时间戳和相对时间戳。

绝对时间戳

IOTDB 中绝对时间戳分为二种,一种为 LONG 类型,一种为 DATETIME 类型(包含 DATETIME-INPUT, DATETIME-DISPLAY 两个小类)。

在用户在输入时间戳时,可以使用 LONG 类型的时间戳或 DATETIME-INPUT 类型的时间戳,其中 DATETIME-INPUT 类型的时间戳支持格式如表所示:

DATETIME-INPUT 类型支持格式

format
yyyy-MM-dd HH:mm:ss
yyyy/MM/dd HH:mm:ss
yyyy.MM.dd HH:mm:ss
yyyy-MM-dd HH:mm:ssZZ
yyyy/MM/dd HH:mm:ssZZ
yyyy.MM.dd HH:mm:ssZZ
yyyy/MM/dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss.SSS
yyyy.MM.dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss.SSSZZ
yyyy/MM/dd HH:mm:ss.SSSZZ
yyyy.MM.dd HH:mm:ss.SSSZZ
ISO8601 standard time format

IoTDB 在显示时间戳时可以支持 LONG 类型以及 DATETIME-DISPLAY 类型,其中 DATETIME-DISPLAY 类型可以支持用户自定义时间格式。自定义时间格式的语法如表所示:

DATETIME-DISPLAY 自定义时间格式的语法

SymbolMeaningPresentationExamples
Geraeraera
Ccentury of era (>=0)number20
Yyear of era (>=0)year1996
xweekyearyear1996
wweek of weekyearnumber27
eday of weeknumber2
Eday of weektextTuesday; Tue
yyearyear1996
Dday of yearnumber189
Mmonth of yearmonthJuly; Jul; 07
dday of monthnumber10
ahalfday of daytextPM
Khour of halfday (0~11)number0
hclockhour of halfday (1~12)number12
Hhour of day (0~23)number0
kclockhour of day (1~24)number24
mminute of hournumber30
ssecond of minutenumber55
Sfraction of secondmillis978
ztime zonetextPacific Standard Time; PST
Ztime zone offset/idzone-0800; -08:00; America/Los_Angeles
'escape for textdelimiter
''single quoteliteral'

相对时间戳

相对时间是指与服务器时间now()DATETIME类型时间相差一定时间间隔的时间。
形式化定义为:

Duration = (Digit+ ('Y'|'MO'|'W'|'D'|'H'|'M'|'S'|'MS'|'US'|'NS'))+
RelativeTime = (now() | DATETIME) ((+|-) Duration)+

The syntax of the duration unit

SymbolMeaningPresentationExamples
yyear1y=365 days1y
momonth1mo=30 days1mo
wweek1w=7 days1w
dday1d=1 day1d
hhour1h=3600 seconds1h
mminute1m=60 seconds1m
ssecond1s=1 second1s
msmillisecond1ms=1000_000 nanoseconds1ms
usmicrosecond1us=1000 nanoseconds1us
nsnanosecond1ns=1 nanosecond1ns

例子:

now() - 1d2h //比服务器时间早 1 天 2 小时的时间
now() - 1w //比服务器时间早 1 周的时间

注意:'+'和'-'的左右两边必须有空格

Copyright © 2024 The Apache Software Foundation.
Apache IoTDB, IoTDB, Apache, the Apache feather logo, and the Apache IoTDB project logo are either registered trademarks or trademarks of The Apache Software Foundation in all countries

Have a question? Connect with us on QQ, WeChat, or Slack. Join the community now.