(window.webpackJsonp=window.webpackJsonp||[]).push([[677],{1248:function(e,t,o){"use strict";o.r(t);var n=o(71),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"data-type"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#data-type"}},[e._v("#")]),e._v(" Data Type")]),e._v(" "),o("p",[e._v("IoTDB supports six data types in total:")]),e._v(" "),o("ul",[o("li",[e._v("BOOLEAN (Boolean)")]),e._v(" "),o("li",[e._v("INT32 (Integer)")]),e._v(" "),o("li",[e._v("INT64 (Long Integer)")]),e._v(" "),o("li",[e._v("FLOAT (Single Precision Floating Point)")]),e._v(" "),o("li",[e._v("DOUBLE (Double Precision Floating Point)")]),e._v(" "),o("li",[e._v("TEXT (String).")])]),e._v(" "),o("p",[e._v("The time series of "),o("strong",[e._v("FLOAT")]),e._v(" and "),o("strong",[e._v("DOUBLE")]),e._v(" type can specify (MAX_POINT_NUMBER, see "),o("RouterLink",{attrs:{to:"/UserGuide/Master/Master/V0.9.x/5-Operation Manual/4-SQL Reference.html"}},[e._v("this page")]),e._v(" for more information on how to specify), which is the number of digits after the decimal point of the floating point number, if the encoding method is "),o("RouterLink",{attrs:{to:"/UserGuide/Master/Master/V0.9.x/2-Concept/3-Encoding.html"}},[e._v("RLE")]),e._v(" or "),o("RouterLink",{attrs:{to:"/UserGuide/Master/Master/V0.9.x/2-Concept/3-Encoding.html"}},[e._v("TS_2DIFF")]),e._v(" (Refer to "),o("RouterLink",{attrs:{to:"/UserGuide/Master/Master/V0.9.x/5-Operation Manual/4-SQL Reference.html"}},[e._v("Create Timeseries Statement")]),e._v(" for more information on how to specify). If MAX_POINT_NUMBER is not specified, the system will use "),o("RouterLink",{attrs:{to:"/UserGuide/Master/Master/V0.9.x/3-Server/4-Config Manual.html"}},[e._v("float_precision")]),e._v(" in the configuration file "),o("code",[e._v("tsfile-format.properties")]),e._v(".")],1),e._v(" "),o("ul",[o("li",[e._v("For Float data value, The data range is (-Integer.MAX_VALUE, Integer.MAX_VALUE), rather than Float.MAX_VALUE, and the max_point_number is 19, it is because of the limition of function Math.round(float) in Java.")]),e._v(" "),o("li",[e._v("For Double data value, The data range is (-Long.MAX_VALUE, Long.MAX_VALUE), rather than Double.MAX_VALUE, and the max_point_number is 19, it is because of the limition of function Math.round(double) in Java (Long.MAX_VALUE=9.22E18).")])]),e._v(" "),o("p",[e._v("When the data type of data input by the user in the system does not correspond to the data type of the time series, the system will report type errors. As shown below, the second-order difference encoding does not support the Boolean type:")]),e._v(" "),o("div",{staticClass:"language- line-numbers-mode"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v("IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, ENCODING=TS_2DIFF\nerror: encoding TS_2DIFF does not support BOOLEAN\n")])]),e._v(" "),o("div",{staticClass:"line-numbers-wrapper"},[o("span",{staticClass:"line-number"},[e._v("1")]),o("br"),o("span",{staticClass:"line-number"},[e._v("2")]),o("br")])])])}),[],!1,null,null,null);t.default=a.exports}}]);