数据类型

基本数据类型

IoTDB 支持:

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

一共六种数据类型。

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

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

  1. IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, ENCODING=TS_2DIFF
  2. 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类型时间相差一定时间间隔的时间。 形式化定义为:

  1. Duration = (Digit+ ('Y'|'MO'|'W'|'D'|'H'|'M'|'S'|'MS'|'US'|'NS'))+
  2. 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

例子:

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

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