首页 > 其他分享 >TDengine函数大全-时间和日期函数

TDengine函数大全-时间和日期函数

时间:2023-09-07 16:05:38浏览次数:33  
标签:00 01 函数 TDengine 08 09 2023 31 大全



以下所有示例基于 TDengine 3.1.0.3

TDengine函数大全

1.数学函数

2.字符串函数

3.转换函数

4.时间和日期函数

5.聚合函数

6.选择函数

7.时序数据库特有函数

8.系统函数


时间和日期函数

  • TDengine函数大全
  • NOW
  • TIMEDIFF
  • TIMETRUNCATE
  • TIMEZONE
  • TODAY


NOW

NOW()

功能说明:返回客户端当前系统时间。

返回结果数据类型:TIMESTAMP。

应用字段:在 WHERE 或 INSERT 语句中使用时只能作用于 TIMESTAMP 类型的字段。

适用于:表和超级表。

嵌套子查询支持:适用于内层查询和外层查询。

使用说明

  • 支持时间加减操作,如 NOW() + 1s, 支持的时间单位如下:
    b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。
  • 返回的时间戳精度与当前 DATABASE 设置的时间精度一致。

示例:

> create table t4 (ts timestamp, v1 int);
> insert into t4 values(now,1);
> insert into t4 values(now,2);
> insert into t4 values(now,3);

> select * from t4;
           ts            |     v1      |
========================================
 2023-08-31 09:27:36.033 |           1 |
 2023-08-31 09:27:38.275 |           2 |
 2023-08-31 09:27:40.270 |           3 |

> select * from t4 where ts>now-60s;
           ts            |     v1      |
========================================
 2023-08-31 09:27:36.033 |           1 |
 2023-08-31 09:27:38.275 |           2 |
 2023-08-31 09:27:40.270 |           3 |

TIMEDIFF

TIMEDIFF(expr1, expr2 [, time_unit])

功能说明:计算两个时间戳之间的差值,并近似到时间单位 time_unit 指定的精度。

返回结果数据类型:BIGINT。

应用字段:表示 UNIX 时间戳的 BIGINT, TIMESTAMP 类型,或符合日期时间格式的 VARCHAR, NCHAR 类型。

适用于:表和超级表。

嵌套子查询支持:适用于内层查询和外层查询。

使用说明

  • 支持的时间单位 time_unit 如下(时间精度不能小于 DATABASE 时间精度):
    1b(纳秒), 1u(微秒),1a(毫秒),1s(秒),1m(分),1h(小时),1d(天), 1w(周)。
  • 如果时间单位 time_unit 未指定, 返回的时间差值精度与当前 DATABASE 设置的时间精度一致。
  • 输入包含不符合时间日期格式的字符串则返回 NULL。

示例:

> create table t5 (ts1 timestamp,ts2 timestamp);
> insert into t5 values(now,now-1s);
> insert into t5 values(now,now-2s);
> insert into t5 values(now,now-3s);

taos> select * from t5;
           ts1           |           ts2           |
====================================================
 2023-08-31 09:32:54.649 | 2023-08-31 09:32:53.649 |
 2023-08-31 09:32:57.637 | 2023-08-31 09:32:55.637 |
 2023-08-31 09:32:59.935 | 2023-08-31 09:32:56.935 |

> select timediff(ts1,ts2) from t5;
   timediff(ts1,ts2)   |
========================
                  1000 |
                  2000 |
                  3000 |

> select timediff(ts1,ts2,1s) from t5;
 timediff(ts1,ts2,1s)  |
========================
                     1 |
                     2 |
                     3 |

> select timediff(ts1,ts2,1m) from t5;
 timediff(ts1,ts2,1m)  |
========================
                     0 |
                     0 |
                     0 |

> select timediff(ts1,ts2,1u) from t5;

DB error: TIMEDIFF function time unit parameter should be greater than db precision (0.000294s)

TIMETRUNCATE

TIMETRUNCATE(expr, time_unit [, ignore_timezone])

ignore_timezone: {
    0
  | 1
}

功能说明:将时间戳按照指定时间单位 time_unit 进行截断。

返回结果数据类型:TIMESTAMP。

应用字段:表示 UNIX 时间戳的 BIGINT, TIMESTAMP 类型,或符合日期时间格式的 VARCHAR, NCHAR 类型。

适用于:表和超级表。

使用说明

  • 支持的时间单位 time_unit 如下:
    1b(纳秒), 1u(微秒),1a(毫秒),1s(秒),1m(分),1h(小时),1d(天), 1w(周)。
  • 返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
  • 输入包含不符合时间日期格式的字符串则返回 NULL。
  • 当使用 1d 作为时间单位对时间戳进行截断时, 可通过设置 ignore_timezone 参数指定返回结果的显示是否忽略客户端时区的影响。
    例如客户端所配置时区为 UTC+0800, 则 TIMETRUNCATE(‘2020-01-01 23:00:00’, 1d, 0) 返回结果为 ‘2020-01-01 08:00:00’。
    而使用 TIMETRUNCATE(‘2020-01-01 23:00:00’, 1d, 1) 设置忽略时区时,返回结果为 ‘2020-01-01 00:00:00’
    ignore_timezone 如果忽略的话,则默认值为 1 。

示例:

> select ts1 from t5;
           ts1           |
==========================
 2023-08-31 09:32:54.649 |
 2023-08-31 09:32:57.637 |
 2023-08-31 09:32:59.935 |

> select timetruncate(ts1,1s) from t5;
  timetruncate(ts1,1s)   |
==========================
 2023-08-31 09:32:54.000 |
 2023-08-31 09:32:57.000 |
 2023-08-31 09:32:59.000 |

> select timetruncate(ts1,1m) from t5;
  timetruncate(ts1,1m)   |
==========================
 2023-08-31 09:32:00.000 |
 2023-08-31 09:32:00.000 |
 2023-08-31 09:32:00.000 |

> select timetruncate(ts1,1h) from t5;
  timetruncate(ts1,1h)   |
==========================
 2023-08-31 09:00:00.000 |
 2023-08-31 09:00:00.000 |
 2023-08-31 09:00:00.000 |

> select timetruncate(ts1,1d) from t5;
  timetruncate(ts1,1d)   |
==========================
 2023-08-31 00:00:00.000 |
 2023-08-31 00:00:00.000 |
 2023-08-31 00:00:00.000 |

> select timetruncate(ts1,1d,0) from t5;
 timetruncate(ts1,1d,0)  |
==========================
 2023-08-31 08:00:00.000 |
 2023-08-31 08:00:00.000 |
 2023-08-31 08:00:00.000 |

> select timetruncate(ts1,1d,1) from t5;
 timetruncate(ts1,1d,1)  |
==========================
 2023-08-31 00:00:00.000 |
 2023-08-31 00:00:00.000 |
 2023-08-31 00:00:00.000 |

> select timetruncate('2023-01-01T12:01:00+09:00',1h,1) from t5;
 timetruncate('2023-01-01T12:01:00+09:00',1h,1) |
=================================================
 2023-01-01 11:00:00.000 |
 2023-01-01 11:00:00.000 |
 2023-01-01 11:00:00.000 |

> select timetruncate('2023-01-01T12:01:00+09:00',1h,0) from t5;
 timetruncate('2023-01-01T12:01:00+09:00',1h,0) |
=================================================
 2023-01-01 11:00:00.000 |
 2023-01-01 11:00:00.000 |
 2023-01-01 11:00:00.000 |

TIMEZONE

TIMEZONE()

功能说明:返回客户端当前时区信息。

返回结果数据类型:VARCHAR。

应用字段:无

适用于:表和超级表。

示例:

> show variables;
               name               |                  value                   |  scope   |
=========================================================================================
 statusInterval                   | 1                                        | server   |
 timezone                         | Asia/Shanghai (CST, +0800)               | both     |
 locale                           | en_US.UTF-8                              | both     |
 charset                          | UTF-8                                    | both     |

> select timezone() from t5 limit 1;
                timezone()                |
===========================================
 Asia/Shanghai (CST, +0800)               |

TODAY

TODAY()

功能说明:返回客户端当日零时的系统时间。

返回结果数据类型:TIMESTAMP。

应用字段:在 WHERE 或 INSERT 语句中使用时只能作用于 TIMESTAMP 类型的字段。

适用于:表和超级表。

使用说明

  • 支持时间加减操作,如 TODAY() + 1s, 支持的时间单位如下:
    b(纳秒),u(微秒),a(毫秒),s(秒),m(分),h(小时),d(天),w(周)。
  • 返回的时间戳精度与当前 DATABASE 设置的时间精度一致。

示例:

> select today() from t5 limit 1;
         today()         |
==========================
 2023-08-31 00:00:00.000 |

> select today()+1h from t5 limit 1;
       today()+1h        |
==========================
 2023-08-31 01:00:00.000 |

> select today(),now from t5 limit 1;
         today()         |           now           |
====================================================
 2023-08-31 00:00:00.000 | 2023-08-31 09:44:40.058 |


标签:00,01,函数,TDengine,08,09,2023,31,大全
From: https://blog.51cto.com/dbadadong/7398108

相关文章

  • TDengine函数大全-目录
    TDengine函数大全详情见具体页面,点击进入。1.数学函数ABSACOSASINATANCEILCOSFLOORLOGPOWROUNDSINSQRTTAN2.字符串函数CHAR_LENGTHCONCATCONCAT_WSLENGTHLOWERLTRIMRTRIMSUBSTRUPPER3.转换函数CASTTO_ISO8601TO_UNIXTIMESTAMPTO_JSON4.时间和日期函数NOWTIMEDIFFTIMETRUNCATETIMEZ......
  • 【C++】C++ 引用详解 ④ ( 函数返回 静态变量 / 全局变量 的 引用 / 指针 )
    文章目录一、函数返回静态变量/全局变量的引用/指针1、函数返回局部变量引用或指针无意义2、函数返回静态变量/全局变量的引用或指针3、代码示例-函数返回静态变量/全局变量的引用或指针一、函数返回静态变量/全局变量的引用/指针1、函数返回局部变量引用或指针......
  • 手撕代码,函数重载和重写
    #include<bits/stdc++.h>usingnamespacestd;classanimal{public://纯虚函数//virtualvoidsound()=0;//虚函数virtualvoidsound(){cout<<"animalsound"<<endl;}voidsound(strings){......
  • SQL语句大全之技巧篇
    1、1=1,1=2的使用,在SQL语句组合时用的较多“where1=1”是表示选择全部“where1=2”全部不选,如:if@strWhere!=''beginset@strSQL='selectcount(*)asTotalfrom['+@tblName+']where'+@strWhereendelsebeginset@strSQL='selectcount(*)as......
  • [ 数据库原理 ] 函数依赖关系
    函数依赖概念函数依赖是指关系中属性间的对应关系。函数依赖是从数学角度来定义的,在关系中用来刻画关系各属性之间相互制约而又相互依赖的情况。函数依赖普遍存在于现实生活中,比如,描述一个学生的关系,可以有学号、姓名、所在系等多个属性,由于一个学号对应一个且仅一个学生,一个学......
  • sqlserver移植为Oracle笔记(更新,新增字段名;批量新增记录;日期查询;截取字串函数)
    下面是这两天在项目要sqlserver和oracle兼容的改造中测试出来的笔记:--sqlserver--更改主键字段名'ID'为'ID_'sp_rename  'tb_doc_cat_statistic.ID','ID_','column'--新增字段cat_codealtertabletb_doc_cat_statisticaddcat_codevarchar(100) --oracle--......
  • 编写求阶乘函数
    ​ ,计算并返回1!+2!+3!+……+n!的值。函数fact()实现计算并返回123*……*n的值;函数fun()实现计算并返回1!+2!+3!+……+n!的值;函数main()从后台获取整数n,调用函数fun(),输出结果并保留0位小数。#include<stdio.h>floatfact(floatm){floati,s=1;for(i=1;i<=m......
  • 【230908-3】同一直角坐标系中,分别作函数y=1/a^x,y=loga_(x-1/2)(a>0且a≠1)的图像如
    ......
  • 无涯教程-JavaScript - BITAND函数
    描述BITAND函数返回两个数字的按位"AND"。语法BITAND(number1,number2)争论Argument描述Required/Optionalnumber1Mustbeindecimalformandgreaterthanorequalto0.Requirednumber2Mustbeindecimalformandgreaterthanorequalto0.Required......
  • 无涯教程-JavaScript - BIN2DEC函数
    描述BIN2DEC函数将二进制数字转换为十进制。语法BIN2DEC(number)争论Argument描述Required/Optionalnumber您要转换的二进制数。Numbercannotcontainmorethan10characters(10bits).数字的最高有效位是符号位。其余的9位是幅度位。负数使用二进制补码表示......