Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
26b9d09a
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
26b9d09a
编写于
5月 31, 2022
作者:
P
plum-lihui
浏览文件
操作
浏览文件
下载
差异文件
Merge branch '3.0' of github.com:taosdata/TDengine into 3.0
上级
ac02f8d2
1c1e83e6
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
31 addition
and
32 deletion
+31
-32
docs-cn/12-taos-sql/01-data-type.md
docs-cn/12-taos-sql/01-data-type.md
+7
-12
source/dnode/mnode/impl/test/db/CMakeLists.txt
source/dnode/mnode/impl/test/db/CMakeLists.txt
+6
-4
source/dnode/mnode/impl/test/sma/CMakeLists.txt
source/dnode/mnode/impl/test/sma/CMakeLists.txt
+6
-4
source/dnode/mnode/impl/test/stb/CMakeLists.txt
source/dnode/mnode/impl/test/stb/CMakeLists.txt
+6
-4
source/libs/scalar/test/scalar/CMakeLists.txt
source/libs/scalar/test/scalar/CMakeLists.txt
+4
-6
source/libs/scalar/test/scalar/scalarTests.cpp
source/libs/scalar/test/scalar/scalarTests.cpp
+2
-2
未找到文件。
docs-cn/12-taos-sql/01-data-type.md
浏览文件 @
26b9d09a
...
@@ -14,7 +14,7 @@ description: "TDengine 支持的数据类型: 时间戳、浮点型、JSON 类
...
@@ -14,7 +14,7 @@ description: "TDengine 支持的数据类型: 时间戳、浮点型、JSON 类
-
Epoch Time:时间戳也可以是一个长整数,表示从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的毫秒数(相应地,如果所在 Database 的时间精度设置为“微秒”,则长整型格式的时间戳含义也就对应于从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的微秒数;纳秒精度逻辑类似。)
-
Epoch Time:时间戳也可以是一个长整数,表示从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的毫秒数(相应地,如果所在 Database 的时间精度设置为“微秒”,则长整型格式的时间戳含义也就对应于从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的微秒数;纳秒精度逻辑类似。)
-
时间可以加减,比如 now-2h,表明查询时刻向前推 2 个小时(最近 2 小时)。数字后面的时间单位可以是 b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。 比如
`select * from t1 where ts > now-2w and ts <= now-1w`
,表示查询两周前整整一周的数据。在指定降采样操作(down sampling)的时间窗口(interval)时,时间单位还可以使用 n (自然月) 和 y (自然年)。
-
时间可以加减,比如 now-2h,表明查询时刻向前推 2 个小时(最近 2 小时)。数字后面的时间单位可以是 b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。 比如
`select * from t1 where ts > now-2w and ts <= now-1w`
,表示查询两周前整整一周的数据。在指定降采样操作(down sampling)的时间窗口(interval)时,时间单位还可以使用 n (自然月) 和 y (自然年)。
TDengine 缺省的时间戳精度是毫秒,但通过在
`CREATE DATABASE`
时传递的 PRECISION 参数也可以支持微秒和纳秒。
(从 2.1.5.0 版本开始支持纳秒精度)
TDengine 缺省的时间戳精度是毫秒,但通过在
`CREATE DATABASE`
时传递的 PRECISION 参数也可以支持微秒和纳秒。
```
sql
```
sql
CREATE
DATABASE
db_name
PRECISION
'ns'
;
CREATE
DATABASE
db_name
PRECISION
'ns'
;
...
@@ -25,14 +25,14 @@ CREATE DATABASE db_name PRECISION 'ns';
...
@@ -25,14 +25,14 @@ CREATE DATABASE db_name PRECISION 'ns';
| # |
**类型**
|
**Bytes**
|
**说明**
|
| # |
**类型**
|
**Bytes**
|
**说明**
|
| --- | :-------: | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| --- | :-------: | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | TIMESTAMP | 8 | 时间戳。缺省精度毫秒,可支持微秒和纳秒
。从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始,计时不能早于该时间。(从 2.0.18.0 版本开始,已经去除了这一时间范围限制)(从 2.1.5.0 版本开始支持纳秒精度)
|
| 1 | TIMESTAMP | 8 | 时间戳。缺省精度毫秒,可支持微秒和纳秒
,详细说明见上节。
|
| 2 | INT | 4 | 整型,范围 [-2^31, 2^31-1] |
| 2 | INT | 4 | 整型,范围 [-2^31, 2^31-1] |
| 3 | INT UNSIGNED| 4| 无符号整数,[0, 2^32-1]
| 3 | INT UNSIGNED| 4| 无符号整数,[0, 2^32-1]
| 4 | BIGINT | 8 | 长整型,范围 [-2^63, 2^63-1] |
| 4 | BIGINT | 8 | 长整型,范围 [-2^63, 2^63-1] |
| 5 | BIGINT UNSIGNED | 8 | 长整型,范围 [0, 2^64-1] |
| 5 | BIGINT UNSIGNED | 8 | 长整型,范围 [0, 2^64-1] |
| 6 | FLOAT | 4 | 浮点型,有效位数 6-7,范围 [-3.4E38, 3.4E38] |
| 6 | FLOAT | 4 | 浮点型,有效位数 6-7,范围 [-3.4E38, 3.4E38] |
| 7 | DOUBLE | 8 | 双精度浮点型,有效位数 15-16,范围 [-1.7E308, 1.7E308] |
| 7 | DOUBLE | 8 | 双精度浮点型,有效位数 15-16,范围 [-1.7E308, 1.7E308] |
| 8 | BINARY | 自定义 | 记录单字节字符串,建议只用于处理 ASCII 可见字符,中文等多字节字符需使用 nchar。
理论上,最长可以有 16374 字节。binary 仅支持字符串输入,字符串两端需使用单引号引用。使用时须指定大小,如 binary(20) 定义了最长为 20 个单字节字符的字符串,每个字符占 1 byte 的存储空间,总共固定占用 20 bytes 的空间,此时如果用户字符串超出 20 字节将会报错。对于字符串内的单引号,可以用转义字符反斜线加单引号来表示,即
`\’`
。
|
| 8 | BINARY | 自定义 | 记录单字节字符串,建议只用于处理 ASCII 可见字符,中文等多字节字符需使用 nchar。 |
| 9 | SMALLINT | 2 | 短整型, 范围 [-32768, 32767] |
| 9 | SMALLINT | 2 | 短整型, 范围 [-32768, 32767] |
| 10 | SMALLINT UNSIGNED | 2| 无符号短整型,范围 [0, 655357] |
| 10 | SMALLINT UNSIGNED | 2| 无符号短整型,范围 [0, 655357] |
| 11 | TINYINT | 1 | 单字节整型,范围 [-128, 127] |
| 11 | TINYINT | 1 | 单字节整型,范围 [-128, 127] |
...
@@ -42,20 +42,15 @@ CREATE DATABASE db_name PRECISION 'ns';
...
@@ -42,20 +42,15 @@ CREATE DATABASE db_name PRECISION 'ns';
| 15 | JSON | | json 数据类型, 只有 tag 可以是 json 格式 |
| 15 | JSON | | json 数据类型, 只有 tag 可以是 json 格式 |
| 16 | VARCHAR | 自定义 | BINARY类型的别名 |
| 16 | VARCHAR | 自定义 | BINARY类型的别名 |
:::tip
TDengine 对 SQL 语句中的英文字符不区分大小写,自动转化为小写执行。因此用户大小写敏感的字符串及密码,需要使用单引号将字符串引起来。
:::
:::note
:::note
虽然 BINARY 类型在底层存储上支持字节型的二进制字符,但不同编程语言对二进制数据的处理方式并不保证一致,因此建议在 BINARY 类型中只存储 ASCII 可见字符,而避免存储不可见字符。多字节的数据,例如中文字符,则需要使用 NCHAR 类型进行保存。如果强行使用 BINARY 类型保存中文字符,虽然有时也能正常读写,但并不带有字符集信息,很容易出现数据乱码甚至数据损坏等情况。
-
TDengine 对 SQL 语句中的英文字符不区分大小写,自动转化为小写执行。因此用户大小写敏感的字符串及密码,需要使用单引号将字符串引起来。
-
虽然 BINARY 类型在底层存储上支持字节型的二进制字符,但不同编程语言对二进制数据的处理方式并不保证一致,因此建议在 BINARY 类型中只存储 ASCII 可见字符,而避免存储不可见字符。多字节的数据,例如中文字符,则需要使用 NCHAR 类型进行保存。如果强行使用 BINARY 类型保存中文字符,虽然有时也能正常读写,但并不带有字符集信息,很容易出现数据乱码甚至数据损坏等情况。
-
BINARY 类型理论上最长可以有 16374 字节。binary 仅支持字符串输入,字符串两端需使用单引号引用。使用时须指定大小,如 binary(20) 定义了最长为 20 个单字节字符的字符串,每个字符占 1 byte 的存储空间,总共固定占用 20 bytes 的空间,此时如果用户字符串超出 20 字节将会报错。对于字符串内的单引号,可以用转义字符反斜线加单引号来表示,即
`\’`
。
-
SQL 语句中的数值类型将依据是否存在小数点,或使用科学计数法表示,来判断数值类型是否为整型或者浮点型,因此在使用时要注意相应类型越界的情况。例如,9999999999999999999 会认为超过长整型的上边界而溢出,而 9999999999999999999.0 会被认为是有效的浮点数。
:::
:::
:::note
SQL 语句中的数值类型将依据是否存在小数点,或使用科学计数法表示,来判断数值类型是否为整型或者浮点型,因此在使用时要注意相应类型越界的情况。例如,9999999999999999999 会认为超过长整型的上边界而溢出,而 9999999999999999999.0 会被认为是有效的浮点数。
:::
## 常量
## 常量
TDengine支持多个类型的常量,细节如下表:
TDengine支持多个类型的常量,细节如下表:
...
...
source/dnode/mnode/impl/test/db/CMakeLists.txt
浏览文件 @
26b9d09a
...
@@ -5,7 +5,9 @@ target_link_libraries(
...
@@ -5,7 +5,9 @@ target_link_libraries(
PUBLIC sut
PUBLIC sut
)
)
add_test
(
if
(
NOT TD_WINDOWS
)
add_test
(
NAME dbTest
NAME dbTest
COMMAND dbTest
COMMAND dbTest
)
)
endif
(
NOT TD_WINDOWS
)
source/dnode/mnode/impl/test/sma/CMakeLists.txt
浏览文件 @
26b9d09a
...
@@ -5,7 +5,9 @@ target_link_libraries(
...
@@ -5,7 +5,9 @@ target_link_libraries(
PUBLIC sut
PUBLIC sut
)
)
add_test
(
if
(
NOT TD_WINDOWS
)
add_test
(
NAME smaTest
NAME smaTest
COMMAND smaTest
COMMAND smaTest
)
)
endif
(
NOT TD_WINDOWS
)
source/dnode/mnode/impl/test/stb/CMakeLists.txt
浏览文件 @
26b9d09a
...
@@ -5,7 +5,9 @@ target_link_libraries(
...
@@ -5,7 +5,9 @@ target_link_libraries(
PUBLIC sut
PUBLIC sut
)
)
add_test
(
if
(
NOT TD_WINDOWS
)
add_test
(
NAME stbTest
NAME stbTest
COMMAND stbTest
COMMAND stbTest
)
)
endif
(
NOT TD_WINDOWS
)
\ No newline at end of file
source/libs/scalar/test/scalar/CMakeLists.txt
浏览文件 @
26b9d09a
...
@@ -17,9 +17,7 @@ TARGET_INCLUDE_DIRECTORIES(
...
@@ -17,9 +17,7 @@ TARGET_INCLUDE_DIRECTORIES(
PUBLIC
"
${
TD_SOURCE_DIR
}
/source/libs/parser/inc"
PUBLIC
"
${
TD_SOURCE_DIR
}
/source/libs/parser/inc"
PRIVATE
"
${
TD_SOURCE_DIR
}
/source/libs/scalar/inc"
PRIVATE
"
${
TD_SOURCE_DIR
}
/source/libs/scalar/inc"
)
)
if
(
NOT TD_WINDOWS
)
add_test
(
add_test
(
NAME scalarTest
NAME scalarTest
COMMAND scalarTest
COMMAND scalarTest
)
)
endif
(
NOT TD_WINDOWS
)
source/libs/scalar/test/scalar/scalarTests.cpp
浏览文件 @
26b9d09a
...
@@ -2498,7 +2498,7 @@ TEST(ScalarFunctionTest, tanFunction_column) {
...
@@ -2498,7 +2498,7 @@ TEST(ScalarFunctionTest, tanFunction_column) {
code
=
tanFunction
(
pInput
,
1
,
pOutput
);
code
=
tanFunction
(
pInput
,
1
,
pOutput
);
ASSERT_EQ
(
code
,
TSDB_CODE_SUCCESS
);
ASSERT_EQ
(
code
,
TSDB_CODE_SUCCESS
);
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_
EQ
(
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)),
result
[
i
]
);
ASSERT_
NEAR
(
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)),
result
[
i
],
1e-15
);
PRINTF
(
"tiny_int after TAN:%f
\n
"
,
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)));
PRINTF
(
"tiny_int after TAN:%f
\n
"
,
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)));
}
}
scltDestroyDataBlock
(
pInput
);
scltDestroyDataBlock
(
pInput
);
...
@@ -2517,7 +2517,7 @@ TEST(ScalarFunctionTest, tanFunction_column) {
...
@@ -2517,7 +2517,7 @@ TEST(ScalarFunctionTest, tanFunction_column) {
code
=
tanFunction
(
pInput
,
1
,
pOutput
);
code
=
tanFunction
(
pInput
,
1
,
pOutput
);
ASSERT_EQ
(
code
,
TSDB_CODE_SUCCESS
);
ASSERT_EQ
(
code
,
TSDB_CODE_SUCCESS
);
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_
EQ
(
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)),
result
[
i
]
);
ASSERT_
NEAR
(
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)),
result
[
i
],
1e-15
);
PRINTF
(
"float after TAN:%f
\n
"
,
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)));
PRINTF
(
"float after TAN:%f
\n
"
,
*
((
double
*
)
colDataGetData
(
pOutput
->
columnData
,
i
)));
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录