################################################################### # Copyright (c) 2021 by TAOS Technologies, Inc. # All rights reserved. # # This file is proprietary and confidential to TAOS Technologies. # No part of this file may be reproduced, stored, transmitted, # disclosed or used in any form or by any means other than as # expressly provided by the written permission from Jianhui Tao # ################################################################### # -*- coding: utf-8 -*- import sys from util.log import * from util.cases import * from util.sql import * class TDTestCase: def caseDescription(self): ''' case1: [TD-11220]: time related functions ''' return def init(self, conn, logSql): tdLog.debug("start to execute %s" % __file__) tdSql.init(conn.cursor(), logSql) def getBuildPath(self): selfPath = os.path.dirname(os.path.realpath(__file__)) if ("community" in selfPath): projPath = selfPath[:selfPath.find("community")] else: projPath = selfPath[:selfPath.find("tests")] for root, dirs, files in os.walk(projPath): if ("taosd" in files): rootRealPath = os.path.dirname(os.path.realpath(root)) if ("packaging" not in rootRealPath): buildPath = root[:len(root) - len("/build/bin")] break return buildPath def getISOTimeFmt(self, epoch, precision = None, delta = datetime.timedelta(hours = 8)): if precision == "m": time = datetime.datetime.fromtimestamp(epoch / 1000, tz = datetime.timezone(delta)) time_str = time.strftime("%Y-%m-%dT%H:%M:%S.%f%z") tz = time_str[-5:] return time_str[:-8] + tz elif precision == "u": time = datetime.datetime.fromtimestamp(epoch / 1000000, tz = datetime.timezone(delta)) return time.strftime("%Y-%m-%dT%H:%M:%S.%f%z") elif precision == "n": time = datetime.datetime.fromtimestamp(epoch / 1000000000, tz = datetime.timezone(delta)) time_str = time.strftime("%Y-%m-%dT%H:%M:%S.%f%z") tz = time_str[-5:] nanoDigits = str(epoch)[-3:] return time_str[:-5] + nanoDigits + tz else: time = datetime.datetime.fromtimestamp(epoch, tz = datetime.timezone(delta)) return time.strftime("%Y-%m-%dT%H:%M:%S%z") def checkTimestampEqual(self, elm, expect_elm): caller = inspect.getframeinfo(inspect.stack()[1][0]) if len(elm) == len(expect_elm): delta = abs(int(elm[-1]) - int(expect_elm[-1])) if delta == 1: #ignore 1 second diff new_elm = expect_elm[0:-1] + elm[-1] else: new_elm = expect_elm; if elm == new_elm: tdLog.info("sql:%s, elm:%s == expect_elm:%s" % (tdSql.sql, elm, new_elm)) else: args = (caller.filename, caller.lineno, tdSql.sql, elm, new_elm) tdLog.exit("%s(%d) failed: sql:%s, elm:%s != expect_elm:%s" % args) else: args = (caller.filename, caller.lineno, tdSql.sql, elm, expect_elm) tdLog.exit("%s(%d) failed: sql:%s, elm:%s != expect_elm:%s" % args) def run(self): print("running {}".format(__file__)) #Prepare data #db precision "ms" tdSql.execute("drop database if exists db_m") tdSql.execute("create database if not exists db_m") tdSql.execute('use db_m') tdSql.execute("create stable stb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10)) \ tags(tag_timestamp timestamp, tag_tinyint tinyint, tag_smallint smallint, tag_int int, tag_bigint bigint, tag_float float, tag_double double, tag_bool bool, tag_binary binary(10), tag_nchar nchar(10));") tdSql.execute("create table ctb using stb tags ('2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("create table tb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10));") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") #db precision "us" tdSql.execute("drop database if exists db_u") tdSql.execute("create database if not exists db_u precision 'us'") tdSql.execute('use db_u') tdSql.execute("create stable stb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10)) \ tags(tag_timestamp timestamp, tag_tinyint tinyint, tag_smallint smallint, tag_int int, tag_bigint bigint, tag_float float, tag_double double, tag_bool bool, tag_binary binary(10), tag_nchar nchar(10));") tdSql.execute("create table ctb using stb tags ('2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("create table tb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10));") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") #db precision "ns" tdSql.execute("drop database if exists db_n") tdSql.execute("create database if not exists db_n precision 'ns'") tdSql.execute('use db_n') tdSql.execute("create stable stb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10)) \ tags(tag_timestamp timestamp, tag_tinyint tinyint, tag_smallint smallint, tag_int int, tag_bigint bigint, tag_float float, tag_double double, tag_bool bool, tag_binary binary(10), tag_nchar nchar(10));") tdSql.execute("create table ctb using stb tags ('2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("create table tb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10));") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") #execute query print("============== STEP 1: select to_iso8601() with milliesecond db precision ================== ") tdSql.execute('use db_m') #epoch as input ts = 0 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 2743200 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 633895200 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 1643738400 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 1643738400123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) ts = 1643738400000123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) ts = 1643738400000000123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) #timestamp column as input tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.001', '2022-02-02 02:00:00.001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.002', '2022-02-02 02:00:00.002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.001', '2022-02-02 02:00:00.001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.002', '2022-02-02 02:00:00.002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.query("select to_iso8601(ts) from tb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.002+0800") tdSql.query("select to_iso8601(ts) from ctb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.002+0800") tdSql.query("select to_iso8601(ts) from stb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.002+0800") tdSql.query("select to_iso8601(col_timestamp) from tb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.002+0800") tdSql.query("select to_iso8601(col_timestamp) from ctb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.002+0800") tdSql.query("select to_iso8601(col_timestamp) from stb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.002+0800") print("============== STEP 2: select to_iso8601() with microsecond db precision ================== ") tdSql.execute('use db_u') #epoch as input ts = 0 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 2743200 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 633895200 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 1643738400 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 1643738400123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) ts = 1643738400000123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) ts = 1643738400000000123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) #timestamp column as input tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.000001', '2022-02-02 02:00:00.000001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.000002', '2022-02-02 02:00:00.000002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.000001', '2022-02-02 02:00:00.000001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.000002', '2022-02-02 02:00:00.000002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.query("select to_iso8601(ts) from tb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000002+0800") tdSql.query("select to_iso8601(ts) from ctb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000002+0800") tdSql.query("select to_iso8601(ts) from stb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000002+0800") tdSql.query("select to_iso8601(col_timestamp) from tb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000002+0800") tdSql.query("select to_iso8601(col_timestamp) from ctb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000002+0800") tdSql.query("select to_iso8601(col_timestamp) from stb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000002+0800") print("============== STEP 3: select to_iso8601() with nanosecond db precision ================== ") tdSql.execute('use db_n') ts = 0 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 2743200 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 633895200 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 1643738400 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) ts = 1643738400123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "m")) ts = 1643738400000123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "u")) ts = 1643738400000000123 tdSql.query("select to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) tdSql.query("select to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) tdSql.query("select to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts, "n")) #timestamp column as input tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.000000001', '2022-02-02 02:00:00.000000001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.000000002', '2022-02-02 02:00:00.000000002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.000000001', '2022-02-02 02:00:00.000000001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.000000002', '2022-02-02 02:00:00.000000002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.query("select to_iso8601(ts) from tb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000000002+0800") tdSql.query("select to_iso8601(ts) from ctb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000000002+0800") tdSql.query("select to_iso8601(ts) from stb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000000002+0800") tdSql.query("select to_iso8601(col_timestamp) from tb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000000002+0800") tdSql.query("select to_iso8601(col_timestamp) from ctb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000000002+0800") tdSql.query("select to_iso8601(col_timestamp) from stb") tdSql.checkRows(3) tdSql.checkData(0, 0, "2022-02-02T02:00:00.000000000+0800") tdSql.checkData(1, 0, "2022-02-02T02:00:00.000000001+0800") tdSql.checkData(2, 0, "2022-02-02T02:00:00.000000002+0800") print("============== STEP 4: select to_iso8601() other use cases ================== ") tdSql.execute("drop database if exists db_m") tdSql.execute("create database if not exists db_m") tdSql.execute('use db_m') tdSql.execute("create stable stb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10)) \ tags(tag_timestamp timestamp, tag_tinyint tinyint, tag_smallint smallint, tag_int int, tag_bigint bigint, tag_float float, tag_double double, tag_bool bool, tag_binary binary(10), tag_nchar nchar(10));") tdSql.execute("create table ctb using stb tags ('2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("create table tb (ts timestamp, col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10));") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00', '2022-02-02 02:00:00', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") ts = 1643738400 #to_iso8601(), col tdSql.query("select to_iso8601(%d),col_bigint from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),col_bigint from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),col_bigint from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),col_bool from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, True) tdSql.query("select to_iso8601(%d),col_bool from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, True) tdSql.query("select to_iso8601(%d),col_bool from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, True) tdSql.query("select to_iso8601(%d),col_float from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),col_float from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),col_float from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),col_binary from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "abc") tdSql.query("select to_iso8601(%d),col_binary from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "abc") tdSql.query("select to_iso8601(%d),col_binary from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "abc") tdSql.query("select ts, col_smallint, col_float, to_iso8601(%d), col_binary, col_timestamp from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(6) res = tdSql.getData(0, 0) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.checkData(0, 1, 1) tdSql.checkData(0, 2, 1.0) tdSql.checkData(0, 3, self.getISOTimeFmt(ts)) tdSql.checkData(0, 4, "abc") res = tdSql.getData(0, 5) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.query("select ts, col_smallint, col_float, to_iso8601(%d), col_binary, col_timestamp from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(6) res = tdSql.getData(0, 0) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.checkData(0, 1, 1) tdSql.checkData(0, 2, 1.0) tdSql.checkData(0, 3, self.getISOTimeFmt(ts)) tdSql.checkData(0, 4, "abc") res = tdSql.getData(0, 5) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.query("select ts, col_smallint, col_float, to_iso8601(%d), col_binary, col_timestamp from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(6) res = tdSql.getData(0, 0) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.checkData(0, 1, 1) tdSql.checkData(0, 2, 1.0) tdSql.checkData(0, 3, self.getISOTimeFmt(ts)) tdSql.checkData(0, 4, "abc") res = tdSql.getData(0, 5) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") #to_iso8601(%d), tag tdSql.query("select to_iso8601(%d),tag_bigint from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),tag_bigint from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),tag_bool from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, True) tdSql.query("select to_iso8601(%d),tag_bool from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, True) tdSql.query("select to_iso8601(%d),tag_float from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),tag_float from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),tag_binary from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "abc") tdSql.query("select to_iso8601(%d),tag_binary from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "abc") tdSql.query("select tag_smallint, tag_float, to_iso8601(%d), tag_binary, tag_timestamp from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(5) tdSql.checkData(0, 0, 1) tdSql.checkData(0, 1, 1.0) tdSql.checkData(0, 2, self.getISOTimeFmt(ts)) tdSql.checkData(0, 3, "abc") res = tdSql.getData(0, 4) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.query("select tag_smallint, tag_float, to_iso8601(%d), tag_binary, tag_timestamp from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(5) tdSql.checkData(0, 0, 1) tdSql.checkData(0, 1, 1.0) tdSql.checkData(0, 2, self.getISOTimeFmt(ts)) tdSql.checkData(0, 3, "abc") res = tdSql.getData(0, 4) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") #to_iso8601(%d),tbname tdSql.query("select to_iso8601(%d),tbname from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "tb") tdSql.query("select to_iso8601(%d),tbname from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "ctb") tdSql.query("select to_iso8601(%d),tbname from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, "ctb") #to_iso8601(%d),_c0/_C0 tdSql.query("select to_iso8601(%d),_c0 from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) res = tdSql.getData(0, 1) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.query("select to_iso8601(%d),_c0 from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) res = tdSql.getData(0, 1) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.query("select to_iso8601(%d),_c0 from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) res = tdSql.getData(0, 1) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.query("select _C0,to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) res = tdSql.getData(0, 0) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.query("select _C0,to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) res = tdSql.getData(0, 0) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.query("select _C0,to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) res = tdSql.getData(0, 0) self.checkTimestampEqual(str(res), "2022-02-02 02:00:00") tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) #to_iso8601(),func() #can only be used with scalar functions together tdSql.query("select to_iso8601(%d),ceil(col_bigint) from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),ceil(col_bigint) from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),ceil(col_bigint) from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1) tdSql.query("select to_iso8601(%d),round(col_float) from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),round(col_float) from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),round(col_float) from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),floor(1.5) from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),floor(1.5) from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select to_iso8601(%d),floor(1.5) from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, 1.0) tdSql.query("select abs(-1),to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, 1) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.query("select abs(-1),to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, 1) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.query("select abs(-1),to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, 1) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.query("select pow(2,2),to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, 4.0) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.query("select pow(2,2),to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, 4.0) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.query("select pow(2,2),to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(2) tdSql.checkData(0, 0, 4.0) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) #to_iso8601(%d),to_iso8601(%d) tdSql.query("select to_iso8601(%d),to_iso8601(%d),to_iso8601(%d) from tb" %(ts, ts, ts)) tdSql.checkRows(1) tdSql.checkCols(3) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.checkData(0, 2, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d),to_iso8601(%d),to_iso8601(%d) from ctb" %(ts, ts, ts)) tdSql.checkRows(1) tdSql.checkCols(3) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.checkData(0, 2, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d),to_iso8601(%d),to_iso8601(%d) from stb" %(ts, ts, ts)) tdSql.checkRows(1) tdSql.checkCols(3) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(0, 1, self.getISOTimeFmt(ts)) tdSql.checkData(0, 2, self.getISOTimeFmt(ts)) #to_iso8601(%d),constant tdSql.query("select 123,123.0,true,'123',to_iso8601(%d) from tb" %ts) tdSql.checkRows(1) tdSql.checkCols(5) tdSql.checkData(0, 0, 123) tdSql.checkData(0, 1, 123.0) tdSql.checkData(0, 2, True) tdSql.checkData(0, 3, '123') tdSql.checkData(0, 4, self.getISOTimeFmt(ts)) tdSql.query("select 123,123.0,true,'123',to_iso8601(%d) from ctb" %ts) tdSql.checkRows(1) tdSql.checkCols(5) tdSql.checkData(0, 0, 123) tdSql.checkData(0, 1, 123.0) tdSql.checkData(0, 2, True) tdSql.checkData(0, 3, '123') tdSql.checkData(0, 4, self.getISOTimeFmt(ts)) tdSql.query("select 123,123.0,true,'123',to_iso8601(%d) from stb" %ts) tdSql.checkRows(1) tdSql.checkCols(5) tdSql.checkData(0, 0, 123) tdSql.checkData(0, 1, 123.0) tdSql.checkData(0, 2, True) tdSql.checkData(0, 3, '123') tdSql.checkData(0, 4, self.getISOTimeFmt(ts)) #insert some more data tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.001', '2022-02-02 02:00:00.001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.001', '2022-02-02 02:00:00.001', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into ctb values ('2022-02-02 02:00:00.002', '2022-02-02 02:00:00.002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("insert into tb values ('2022-02-02 02:00:00.002', '2022-02-02 02:00:00.002', 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") #order by tdSql.query("select to_iso8601(%d) from tb order by ts" %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb order by ts" %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb order by ts" %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from tb order by ts desc" %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb order by ts desc" %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb order by ts desc" %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) #limit/offset tdSql.query("select to_iso8601(%d) from tb limit 2" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb limit 2" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb limit 2" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from tb limit 2 offset 1" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb limit 2 offset 1" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb limit 2 offset 1" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from tb limit 1,2" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from ctb limit 1,2" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.query("select to_iso8601(%d) from stb limit 1,2" %ts) tdSql.checkRows(2) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) #join tdSql.execute("create stable stb1 (col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10)) \ tags(tag_timestamp timestamp, tag_tinyint tinyint, tag_smallint smallint, tag_int int, tag_bigint bigint, tag_float float, tag_double double, tag_bool bool, tag_binary binary(10), tag_nchar nchar(10));") tdSql.execute("create table ctb1 using stb1 tags (now, 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("create table tb1 (col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10));") tdSql.execute("insert into ctb1 values ('2022-01-01 00:00:00.000', -9, -9, -9, -9, -9.5, -9.5, true, 'abc', 'abc');") tdSql.execute("insert into ctb1 values ('2022-01-01 00:00:00.001', -1, -1, -1, -1, -1.5, -1.5, true, 'abc', 'abc');") tdSql.execute("insert into ctb1 values ('2022-01-01 00:00:00.002', 1, 1, 1, 1, 1.5, 1.5, true, 'abc', 'abc');") tdSql.execute("insert into tb1 values ('2022-01-01 00:00:00.000', -9, -9, -9, -9, -9.5, -9.5, true, 'abc', 'abc');") tdSql.execute("insert into tb1 values ('2022-01-01 00:00:00.001', -1, -1, -1, -1, -1.5, -1.5, true, 'abc', 'abc');") tdSql.execute("insert into tb1 values ('2022-01-01 00:00:00.002', 1, 1, 1, 1, 1.5, 1.5, true, 'abc', 'abc');") tdSql.execute("create stable stb2 (col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10)) \ tags(tag_timestamp timestamp, tag_tinyint tinyint, tag_smallint smallint, tag_int int, tag_bigint bigint, tag_float float, tag_double double, tag_bool bool, tag_binary binary(10), tag_nchar nchar(10));") tdSql.execute("create table ctb2 using stb2 tags (now, 1, 1, 1, 1, 1.0, 1.0, true, 'abc', 'abc');") tdSql.execute("create table tb2 (col_timestamp timestamp, col_tinyint tinyint, col_smallint smallint, col_int int, col_bigint bigint, col_float float, col_double double, col_bool bool, col_binary binary(10), col_nchar nchar(10));") tdSql.execute("insert into ctb2 values ('2022-01-01 00:00:00.000', -9, -9, -9, -9, -9.5, -9.5, true, 'abc', 'abc');") tdSql.execute("insert into ctb2 values ('2022-01-01 00:00:00.001', -1, -1, -1, -1, -1.5, -1.5, true, 'abc', 'abc');") tdSql.execute("insert into ctb2 values ('2022-01-01 00:00:00.002', 1, 1, 1, 1, 1.5, 1.5, true, 'abc', 'abc');") tdSql.execute("insert into tb2 values ('2022-01-01 00:00:00.000', -9, -9, -9, -9, -9.5, -9.5, true, 'abc', 'abc');") tdSql.execute("insert into tb2 values ('2022-01-01 00:00:00.001', -1, -1, -1, -1, -1.5, -1.5, true, 'abc', 'abc');") tdSql.execute("insert into tb2 values ('2022-01-01 00:00:00.002', 1, 1, 1, 1, 1.5, 1.5, true, 'abc', 'abc');") tdSql.query('select to_iso8601(%d) from tb1, tb2 where tb1.col_timestamp = tb2.col_timestamp' %ts); tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from ctb1, ctb2 where ctb1.col_timestamp = ctb2.col_timestamp' %ts); tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from stb1, stb2 where stb1.col_timestamp = stb2.col_timestamp and stb1.tag_int = stb2.tag_int' %ts); tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) #union all tdSql.query('select to_iso8601(%d) from tb1 union all select to_iso8601(%d) from tb2' %(ts, ts)) tdSql.checkRows(6) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.checkData(3, 0, self.getISOTimeFmt(ts)) tdSql.checkData(4, 0, self.getISOTimeFmt(ts)) tdSql.checkData(5, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from ctb1 union all select to_iso8601(%d) from ctb2' %(ts, ts)) tdSql.checkRows(6) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.checkData(3, 0, self.getISOTimeFmt(ts)) tdSql.checkData(4, 0, self.getISOTimeFmt(ts)) tdSql.checkData(5, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from stb1 union all select to_iso8601(%d) from stb2' %(ts, ts)) tdSql.checkRows(6) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.checkData(3, 0, self.getISOTimeFmt(ts)) tdSql.checkData(4, 0, self.getISOTimeFmt(ts)) tdSql.checkData(5, 0, self.getISOTimeFmt(ts)) #nested query tdSql.query('select to_iso8601(%d) from (select * from tb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select * from ctb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select * from stb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select col_int as val from tb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select col_int as val from ctb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select col_int as val from stb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select * from (select to_iso8601(%d) from tb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select * from (select to_iso8601(%d) from ctb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select * from (select to_iso8601(%d) from stb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select _c0 from (select to_iso8601(%d) from tb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select _c0 from (select to_iso8601(%d) from ctb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select _c0 from (select to_iso8601(%d) from stb)' %ts) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select to_iso8601(%d) from tb)' %(ts, ts)) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select to_iso8601(%d) from ctb)' %(ts, ts)) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) tdSql.query('select to_iso8601(%d) from (select to_iso8601(%d) from stb)' %(ts, ts)) tdSql.checkRows(3) tdSql.checkCols(1) tdSql.checkData(0, 0, self.getISOTimeFmt(ts)) tdSql.checkData(1, 0, self.getISOTimeFmt(ts)) tdSql.checkData(2, 0, self.getISOTimeFmt(ts)) ##ERROR CASES #param tdSql.error("select to_iso8601(16437384001) from tb") tdSql.error("select to_iso8601(16437384001) from ctb") tdSql.error("select to_iso8601(16437384001) from stb") tdSql.error("select to_iso8601(164373840012) from tb") tdSql.error("select to_iso8601(164373840012) from ctb") tdSql.error("select to_iso8601(164373840012) from stb") tdSql.error("select to_iso8601(16437384001231) from tb") tdSql.error("select to_iso8601(16437384001231) from ctb") tdSql.error("select to_iso8601(16437384001231) from stb") tdSql.error("select to_iso8601(164373840012312) from tb") tdSql.error("select to_iso8601(164373840012312) from ctb") tdSql.error("select to_iso8601(164373840012312) from stb") tdSql.error("select to_iso8601(16437384001231231) from tb") tdSql.error("select to_iso8601(16437384001231231) from ctb") tdSql.error("select to_iso8601(16437384001231231) from stb") tdSql.error("select to_iso8601(164373840012312312) from tb") tdSql.error("select to_iso8601(164373840012312312) from ctb") tdSql.error("select to_iso8601(164373840012312312) from stb") tdSql.error("select to_iso8601(16437384001231231231) from tb") tdSql.error("select to_iso8601(16437384001231231231) from ctb") tdSql.error("select to_iso8601(16437384001231231231) from stb") tdSql.error("select to_iso8601(1643738400123123123123456) from tb") tdSql.error("select to_iso8601(1643738400123123123123456) from ctb") tdSql.error("select to_iso8601(1643738400123123123123456) from stb") tdSql.error("select to_iso8601(-1) from tb") tdSql.error("select to_iso8601(-1) from ctb") tdSql.error("select to_iso8601(true) from tb") tdSql.error("select to_iso8601(false) from ctb") tdSql.error("select to_iso8601(1.5) from stb") tdSql.error("select to_iso8601(1.5) from tb") tdSql.error("select to_iso8601(1.5) from ctb") tdSql.error("select to_iso8601(1.5) from stb") tdSql.error("select to_iso8601(\"abc\") from tb") tdSql.error("select to_iso8601(\"abc\") from ctb") tdSql.error("select to_iso8601(\"abc\") from stb") tdSql.error("select to_iso8601('abc') from tb") tdSql.error("select to_iso8601('abc') from ctb") tdSql.error("select to_iso8601('abc') from stb") tdSql.error("select to_iso8601(to_iso8601) from tb") tdSql.error("select to_iso8601(to_iso8601) from ctb") tdSql.error("select to_iso8601(to_iso8601) from stb") tdSql.error("select to_iso8601(*) from tb") tdSql.error("select to_iso8601(*) from ctb") tdSql.error("select to_iso8601(*) from stb") tdSql.error("select to_iso8601(tbname) from tb") tdSql.error("select to_iso8601(tbname) from ctb") tdSql.error("select to_iso8601(tbname) from stb") tdSql.error("select to_iso8601(col_bigint) from tb") tdSql.error("select to_iso8601(col_bigint) from ctb") tdSql.error("select to_iso8601(col_bigint) from stb") tdSql.error("select to_iso8601(col_double) from tb") tdSql.error("select to_iso8601(col_double) from ctb") tdSql.error("select to_iso8601(col_double) from stb") tdSql.error("select to_iso8601(col_bool) from tb") tdSql.error("select to_iso8601(col_bool) from ctb") tdSql.error("select to_iso8601(col_bool) from stb") tdSql.error("select to_iso8601(col_binary) from tb") tdSql.error("select to_iso8601(col_binary) from ctb") tdSql.error("select to_iso8601(col_binary) from stb") tdSql.error("select to_iso8601(tag_timestamp) from tb") tdSql.error("select to_iso8601(tag_timestamp) from ctb") tdSql.error("select to_iso8601(tag_timestamp) from stb") tdSql.error("select to_iso8601(tag_bigint) from tb") tdSql.error("select to_iso8601(tag_bigint) from ctb") tdSql.error("select to_iso8601(tag_bigint) from stb") tdSql.error("select to_iso8601(tag_double) from tb") tdSql.error("select to_iso8601(tag_double) from ctb") tdSql.error("select to_iso8601(tag_double) from stb") tdSql.error("select to_iso8601(tag_bool) from tb") tdSql.error("select to_iso8601(tag_bool) from ctb") tdSql.error("select to_iso8601(tag_bool) from stb") tdSql.error("select to_iso8601(tag_binary) from tb") tdSql.error("select to_iso8601(tag_binary) from ctb") tdSql.error("select to_iso8601(tag_binary) from stb") tdSql.error("select to_iso8601(1,'abc',col_bigint) from tb") tdSql.error("select to_iso8601(1,'abc',col_bigint) from ctb") tdSql.error("select to_iso8601(1,'abc',col_bigint) from stb") #distinct tdSql.error("select distinct to_iso8601(ts) from tb") tdSql.error("select distinct to_iso8601(ts) from ctb") tdSql.error("select distinct to_iso8601(ts) from stb") #arithmetic tdSql.error("select to_iso8601(ts) + count(*) from tb") tdSql.error("select to_iso8601(ts) + count(*) from ctb") tdSql.error("select to_iso8601(ts) + count(*) from stb") tdSql.error("select to_iso8601(ts) + avg(col_timestamp) from tb") tdSql.error("select to_iso8601(ts) + avg(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts) + avg(col_timestamp) from stb") tdSql.error("select to_iso8601(ts) + sum(col_int) from tb") tdSql.error("select to_iso8601(ts) + sum(col_int) from ctb") tdSql.error("select to_iso8601(ts) + sum(col_int) from stb") tdSql.error("select to_iso8601(ts) + max(col_timestamp) from tb") tdSql.error("select to_iso8601(ts) + max(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts) + max(col_timestamp) from stb") tdSql.error("select to_iso8601(ts) + first(col_timestamp) from tb") tdSql.error("select to_iso8601(ts) + first(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts) + first(col_timestamp) from stb") tdSql.error("select to_iso8601(ts) + top(col_timestamp, 1) from tb") tdSql.error("select to_iso8601(ts) + top(col_timestamp, 1) from ctb") tdSql.error("select to_iso8601(ts) + top(col_timestamp, 1) from stb") tdSql.error("select to_iso8601(ts) + ceil(col_timestamp) from tb") tdSql.error("select to_iso8601(ts) + ceil(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts) + ceil(col_timestamp) from stb") tdSql.error("select to_iso8601(ts) + floor(col_int) from tb") tdSql.error("select to_iso8601(ts) + floor(col_int) from ctb") tdSql.error("select to_iso8601(ts) + floor(col_int) from stb") tdSql.error("select to_iso8601(ts) + round(1.5) from tb") tdSql.error("select to_iso8601(ts) + round(1.5) from ctb") tdSql.error("select to_iso8601(ts) + round(1.5) from stb") tdSql.error("select to_iso8601(ts) + diff(col_timestamp) from tb") tdSql.error("select to_iso8601(ts) + diff(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts) + diff(col_timestamp) from stb") tdSql.error("select to_iso8601(ts) + 1 from tb") tdSql.error("select to_iso8601(ts) + 1 from ctb") tdSql.error("select to_iso8601(ts) + 1 from stb") tdSql.error("select to_iso8601(ts) + 1.5 from tb") tdSql.error("select to_iso8601(ts) + 1.5 from ctb") tdSql.error("select to_iso8601(ts) + 1.5 from stb") #tdSql.error("select to_iso8601(ts) + true from tb") #tdSql.error("select to_iso8601(ts) + true from ctb") #tdSql.error("select to_iso8601(ts) + true from stb") tdSql.error("select to_iso8601(ts) + 'abc' from tb") tdSql.error("select to_iso8601(ts) + 'abc' from ctb") tdSql.error("select to_iso8601(ts) + 'abc' from stb") tdSql.error("select to_iso8601(ts) + abc from tb") tdSql.error("select to_iso8601(ts) + abc from ctb") tdSql.error("select to_iso8601(ts) + abc from stb") tdSql.error("select to_iso8601(ts) + ts from tb") tdSql.error("select to_iso8601(ts) + ts from ctb") tdSql.error("select to_iso8601(ts) + ts from stb") tdSql.error("select to_iso8601(ts) + col_timestamp from tb") tdSql.error("select to_iso8601(ts) + col_timestamp from ctb") tdSql.error("select to_iso8601(ts) + col_timestamp from stb") tdSql.error("select to_iso8601(ts) + col_tinyint from tb") tdSql.error("select to_iso8601(ts) + col_tinyint from ctb") tdSql.error("select to_iso8601(ts) + col_tinyint from stb") tdSql.error("select to_iso8601(ts) + col_smallint from tb") tdSql.error("select to_iso8601(ts) + col_smallint from ctb") tdSql.error("select to_iso8601(ts) + col_smallint from stb") tdSql.error("select to_iso8601(ts) + col_int from tb") tdSql.error("select to_iso8601(ts) + col_int from ctb") tdSql.error("select to_iso8601(ts) + col_int from stb") tdSql.error("select to_iso8601(ts) + col_bigint from tb") tdSql.error("select to_iso8601(ts) + col_bigint from ctb") tdSql.error("select to_iso8601(ts) + col_bigint from stb") tdSql.error("select to_iso8601(ts) + col_bool from tb") tdSql.error("select to_iso8601(ts) + col_bool from ctb") tdSql.error("select to_iso8601(ts) + col_bool from stb") tdSql.error("select to_iso8601(ts) + col_float from tb") tdSql.error("select to_iso8601(ts) + col_float from ctb") tdSql.error("select to_iso8601(ts) + col_float from stb") tdSql.error("select to_iso8601(ts) + col_double from tb") tdSql.error("select to_iso8601(ts) + col_double from ctb") tdSql.error("select to_iso8601(ts) + col_double from stb") tdSql.error("select to_iso8601(ts) + col_binary from tb") tdSql.error("select to_iso8601(ts) + col_binary from ctb") tdSql.error("select to_iso8601(ts) + col_binary from stb") tdSql.error("select to_iso8601(ts) + col_nchar from tb") tdSql.error("select to_iso8601(ts) + col_nchar from ctb") tdSql.error("select to_iso8601(ts) + col_nchar from stb") tdSql.error("select to_iso8601(ts) + tag_timestamp from tb") tdSql.error("select to_iso8601(ts) + tag_timestamp from ctb") tdSql.error("select to_iso8601(ts) + tag_timestamp from stb") tdSql.error("select to_iso8601(ts) + tag_tinyint from tb") tdSql.error("select to_iso8601(ts) + tag_tinyint from ctb") tdSql.error("select to_iso8601(ts) + tag_tinyint from stb") tdSql.error("select to_iso8601(ts) + tag_smallint from tb") tdSql.error("select to_iso8601(ts) + tag_smallint from ctb") tdSql.error("select to_iso8601(ts) + tag_smallint from stb") tdSql.error("select to_iso8601(ts) + tag_int from tb") tdSql.error("select to_iso8601(ts) + tag_int from ctb") tdSql.error("select to_iso8601(ts) + tag_int from stb") tdSql.error("select to_iso8601(ts) + tag_bigint from tb") tdSql.error("select to_iso8601(ts) + tag_bigint from ctb") tdSql.error("select to_iso8601(ts) + tag_bigint from stb") tdSql.error("select to_iso8601(ts) + tag_bool from tb") tdSql.error("select to_iso8601(ts) + tag_bool from ctb") tdSql.error("select to_iso8601(ts) + tag_bool from stb") tdSql.error("select to_iso8601(ts) + tag_float from tb") tdSql.error("select to_iso8601(ts) + tag_float from ctb") tdSql.error("select to_iso8601(ts) + tag_float from stb") tdSql.error("select to_iso8601(ts) + tag_double from tb") tdSql.error("select to_iso8601(ts) + tag_double from ctb") tdSql.error("select to_iso8601(ts) + tag_double from stb") tdSql.error("select to_iso8601(ts) + tag_binary from tb") tdSql.error("select to_iso8601(ts) + tag_binary from ctb") tdSql.error("select to_iso8601(ts) + tag_binary from stb") tdSql.error("select to_iso8601(ts) + tag_nchar from tb") tdSql.error("select to_iso8601(ts) + tag_nchar from ctb") tdSql.error("select to_iso8601(ts) + tag_nchar from stb") tdSql.error("select to_iso8601(ts) + 0.5b from tb") tdSql.error("select to_iso8601(ts) + 0.5b from ctb") tdSql.error("select to_iso8601(ts) + 0.5b from stb") tdSql.error("select to_iso8601(ts) + 1.5u from tb") tdSql.error("select to_iso8601(ts) + 1.5u from ctb") tdSql.error("select to_iso8601(ts) + 1.5u from stb") tdSql.error("select to_iso8601(ts) + 2.5a from tb") tdSql.error("select to_iso8601(ts) + 2.5a from ctb") tdSql.error("select to_iso8601(ts) + 2.5a from stb") tdSql.error("select to_iso8601(ts) + 3.5s from tb") tdSql.error("select to_iso8601(ts) + 3.5s from ctb") tdSql.error("select to_iso8601(ts) + 3.5s from stb") tdSql.error("select to_iso8601(ts) + 4.5m from tb") tdSql.error("select to_iso8601(ts) + 4.5m from ctb") tdSql.error("select to_iso8601(ts) + 4.5m from stb") tdSql.error("select to_iso8601(ts) + 5.5h from tb") tdSql.error("select to_iso8601(ts) + 5.5h from ctb") tdSql.error("select to_iso8601(ts) + 5.5h from stb") tdSql.error("select to_iso8601(ts) + 6.5d from tb") tdSql.error("select to_iso8601(ts) + 6.5d from ctb") tdSql.error("select to_iso8601(ts) + 6.5d from stb") tdSql.error("select to_iso8601(ts) + 7.5w from tb") tdSql.error("select to_iso8601(ts) + 7.5w from ctb") tdSql.error("select to_iso8601(ts) + 7.5w from stb") tdSql.error("select to_iso8601(ts) - 0.5b from tb") tdSql.error("select to_iso8601(ts) - 0.5b from ctb") tdSql.error("select to_iso8601(ts) - 0.5b from stb") tdSql.error("select to_iso8601(ts) - 1.5u from tb") tdSql.error("select to_iso8601(ts) - 1.5u from ctb") tdSql.error("select to_iso8601(ts) - 1.5u from stb") tdSql.error("select to_iso8601(ts) - 2.5a from tb") tdSql.error("select to_iso8601(ts) - 2.5a from ctb") tdSql.error("select to_iso8601(ts) - 2.5a from stb") tdSql.error("select to_iso8601(ts) - 3.5s from tb") tdSql.error("select to_iso8601(ts) - 3.5s from ctb") tdSql.error("select to_iso8601(ts) - 3.5s from stb") tdSql.error("select to_iso8601(ts) - 4.5m from tb") tdSql.error("select to_iso8601(ts) - 4.5m from ctb") tdSql.error("select to_iso8601(ts) - 4.5m from stb") tdSql.error("select to_iso8601(ts) - 5.5h from tb") tdSql.error("select to_iso8601(ts) - 5.5h from ctb") tdSql.error("select to_iso8601(ts) - 5.5h from stb") tdSql.error("select to_iso8601(ts) - 6.5d from tb") tdSql.error("select to_iso8601(ts) - 6.5d from ctb") tdSql.error("select to_iso8601(ts) - 6.5d from stb") tdSql.error("select to_iso8601(ts) - 7.5w from tb") tdSql.error("select to_iso8601(ts) - 7.5w from ctb") tdSql.error("select to_iso8601(ts) - 7.5w from stb") tdSql.error("select to_iso8601(ts) * 1d from tb") tdSql.error("select to_iso8601(ts) * 1d from ctb") tdSql.error("select to_iso8601(ts) * 1d from stb") tdSql.error("select to_iso8601(ts) / 5m from tb") tdSql.error("select to_iso8601(ts) / 5m from ctb") tdSql.error("select to_iso8601(ts) / 5m from stb") tdSql.error("select to_iso8601(ts) % 10h from tb") tdSql.error("select to_iso8601(ts) % 10h from ctb") tdSql.error("select to_iso8601(ts) % 10h from stb") tdSql.error("select to_iso8601(ts) + 1a * 60b from tb") tdSql.error("select to_iso8601(ts) + 1a * 60b from ctb") tdSql.error("select to_iso8601(ts) + 1a * 60b from stb") tdSql.error("select to_iso8601(ts) + 1s * 60 from tb") tdSql.error("select to_iso8601(ts) + 1s * 60 from ctb") tdSql.error("select to_iso8601(ts) + 1s * 60 from stb") #to_iso8601(ts), func() tdSql.error("select to_iso8601(ts),count(*) from tb") tdSql.error("select to_iso8601(ts),count(*) from ctb") tdSql.error("select to_iso8601(ts),count(*) from stb") tdSql.error("select to_iso8601(ts),avg(col_timestamp) from tb") tdSql.error("select to_iso8601(ts),avg(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts),avg(col_timestamp) from stb") tdSql.error("select to_iso8601(ts),sum(col_int) from tb") tdSql.error("select to_iso8601(ts),sum(col_int) from ctb") tdSql.error("select to_iso8601(ts),sum(col_int) from stb") tdSql.error("select to_iso8601(ts),max(col_timestamp) from tb") tdSql.error("select to_iso8601(ts),max(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts),max(col_timestamp) from stb") tdSql.error("select to_iso8601(ts),first(col_timestamp) from tb") tdSql.error("select to_iso8601(ts),first(col_timestamp) from ctb") tdSql.error("select to_iso8601(ts),first(col_timestamp) from stb") tdSql.error("select to_iso8601(ts),top(col_timestamp, 1) from tb") tdSql.error("select to_iso8601(ts),top(col_timestamp, 1) from ctb") tdSql.error("select to_iso8601(ts),top(col_timestamp, 1) from stb") #session tdSql.error("select to_iso8601(ts) from tb session(ts, 1d)") tdSql.error("select to_iso8601(ts) from ctb session(ts, 1h)") tdSql.error("select to_iso8601(ts) from stb session(ts, 1m)") #state_window tdSql.error('select to_iso8601(ts) from tb state_window(col_timestamp);') tdSql.error('select to_iso8601(ts) from tb state_window(col_tinyint);') tdSql.error('select to_iso8601(ts) from tb state_window(col_smallint);') tdSql.error('select to_iso8601(ts) from tb state_window(col_int);') tdSql.error('select to_iso8601(ts) from tb state_window(col_bigint);') tdSql.error('select to_iso8601(ts) from tb state_window(col_bool);') tdSql.error('select to_iso8601(ts) from tb state_window(col_float);') tdSql.error('select to_iso8601(ts) from tb state_window(col_double);') tdSql.error('select to_iso8601(ts) from tb state_window(col_binary);') tdSql.error('select to_iso8601(ts) from tb state_window(col_nchar);') #interval/sliding tdSql.error('select to_iso8601(ts) from tb interval(1y)') tdSql.error('select to_iso8601(ts) from tb interval(1n)') tdSql.error('select to_iso8601(ts) from tb interval(1w)') tdSql.error('select to_iso8601(ts) from tb interval(1d)') tdSql.error('select to_iso8601(ts) from tb interval(1h)') tdSql.error('select to_iso8601(ts) from tb interval(1s)') tdSql.error('select to_iso8601(ts) from tb interval(1y) sliding(1y)') tdSql.error('select to_iso8601(ts) from tb interval(1n) sliding(1n)') tdSql.error('select to_iso8601(ts) from tb interval(1w) sliding(1w)') tdSql.error('select to_iso8601(ts) from tb interval(1d) sliding(1d)') tdSql.error('select to_iso8601(ts) from tb interval(1h) sliding(1h)') tdSql.error('select to_iso8601(ts) from tb interval(1s) sliding(1s)') #group by tdSql.error('select to_iso8601(ts) from stb group by ts;') tdSql.error('select to_iso8601(ts) from stb group by col_tinyint;') tdSql.error('select to_iso8601(ts) from stb group by col_smallint;') tdSql.error('select to_iso8601(ts) from stb group by col_int;') tdSql.error('select to_iso8601(ts) from stb group by col_bigint;') tdSql.error('select to_iso8601(ts) from stb group by col_bool;') tdSql.error('select to_iso8601(ts) from stb group by col_float;') tdSql.error('select to_iso8601(ts) from stb group by col_double;') tdSql.error('select to_iso8601(ts) from stb group by col_binary;') tdSql.error('select to_iso8601(ts) from stb group by col_nchar;') tdSql.error('select to_iso8601(ts) from stb group by tag_tinyint;') tdSql.error('select to_iso8601(ts) from stb group by tag_smallint;') tdSql.error('select to_iso8601(ts) from stb group by tag_int;') tdSql.error('select to_iso8601(ts) from stb group by tag_bigint;') tdSql.error('select to_iso8601(ts) from stb group by tag_bool;') tdSql.error('select to_iso8601(ts) from stb group by tag_float;') tdSql.error('select to_iso8601(ts) from stb group by tag_double;') tdSql.error('select to_iso8601(ts) from stb group by tag_binary;') tdSql.error('select to_iso8601(ts) from stb group by tag_nchar;') tdSql.error('select to_iso8601(ts) from stb group by tbname;') tdSql.error('select to_iso8601(ts) from stb group by tag_tinyint,col_tinyint;') tdSql.error('select to_iso8601(ts) from stb group by tag_smallint,col_smallint;') tdSql.error('select to_iso8601(ts) from stb group by tag_int,col_int;') tdSql.error('select to_iso8601(ts) from stb group by tag_bigint,col_bigint;') tdSql.error('select to_iso8601(ts) from stb group by tag_bool,col_bool;') tdSql.error('select to_iso8601(ts) from stb group by tag_float,col_float;') tdSql.error('select to_iso8601(ts) from stb group by tag_double,col_double;') tdSql.error('select to_iso8601(ts) from stb group by tag_binary,col_binary;') tdSql.error('select to_iso8601(ts) from stb group by tag_nchar,col_nchar;') #order by tdSql.error('select to_iso8601(ts) from stb order by col_tinyint;') tdSql.error('select to_iso8601(ts) from stb order by col_tinyint desc;') tdSql.error('select to_iso8601(ts) from stb order by col_smallint;') tdSql.error('select to_iso8601(ts) from stb order by col_smallint desc;') tdSql.error('select to_iso8601(ts) from stb order by col_int;') tdSql.error('select to_iso8601(ts) from stb order by col_int desc;') tdSql.error('select to_iso8601(ts) from stb order by col_bigint;') tdSql.error('select to_iso8601(ts) from stb order by col_bigint desc;') tdSql.error('select to_iso8601(ts) from stb order by col_bool;') tdSql.error('select to_iso8601(ts) from stb order by col_bool desc;') tdSql.error('select to_iso8601(ts) from stb order by col_float;') tdSql.error('select to_iso8601(ts) from stb order by col_float desc;') tdSql.error('select to_iso8601(ts) from stb order by col_double;') tdSql.error('select to_iso8601(ts) from stb order by col_double desc;') tdSql.error('select to_iso8601(ts) from stb order by col_double;') tdSql.error('select to_iso8601(ts) from stb order by col_double desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_tinyint;') tdSql.error('select to_iso8601(ts) from stb order by tag_tinyint desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_smallint;') tdSql.error('select to_iso8601(ts) from stb order by tag_smallint desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_int;') tdSql.error('select to_iso8601(ts) from stb order by tag_int desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_bigint;') tdSql.error('select to_iso8601(ts) from stb order by tag_bigint desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_bool;') tdSql.error('select to_iso8601(ts) from stb order by tag_bool desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_float;') tdSql.error('select to_iso8601(ts) from stb order by tag_float desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_double;') tdSql.error('select to_iso8601(ts) from stb order by tag_double desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_double;') tdSql.error('select to_iso8601(ts) from stb order by tag_double desc;') tdSql.error('select to_iso8601(ts) from stb order by tbname;') tdSql.error('select to_iso8601(ts) from stb order by tbname desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_timestamp,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_timestamp,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_tinyint,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_tinyint,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_smallint,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_smallint,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_int,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_int,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_bigint,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_bigint,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_bool,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_bool,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_float,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_float,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_double,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_double,col_timestamp desc;') tdSql.error('select to_iso8601(ts) from stb order by tag_double,col_timestamp;') tdSql.error('select to_iso8601(ts) from stb order by tag_double,col_timestamp desc;') tdSql.execute('drop database db_m') tdSql.execute('drop database db_u') tdSql.execute('drop database db_n') def stop(self): tdSql.close() tdLog.success("%s successfully executed" % __file__) tdCases.addWindows(__file__, TDTestCase()) tdCases.addLinux(__file__, TDTestCase())