Merge pull request #14566 from taosdata/3.0test/jcy
test:update testcase for function timediff() and timetruncate()
This commit is contained in:
commit
a3e4db1c0d
|
@ -0,0 +1,62 @@
|
||||||
|
###################################################################
|
||||||
|
# Copyright (c) 2016 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 time
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
class GetTime:
|
||||||
|
|
||||||
|
def get_ms_timestamp(self,ts_str):
|
||||||
|
_ts_str = ts_str
|
||||||
|
if " " in ts_str:
|
||||||
|
p = ts_str.split(" ")[1]
|
||||||
|
if len(p) > 15 :
|
||||||
|
_ts_str = ts_str[:-3]
|
||||||
|
if ':' in _ts_str and '.' in _ts_str:
|
||||||
|
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d %H:%M:%S.%f")
|
||||||
|
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
||||||
|
elif ':' in _ts_str and '.' not in _ts_str:
|
||||||
|
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d %H:%M:%S")
|
||||||
|
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
||||||
|
else:
|
||||||
|
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d")
|
||||||
|
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
||||||
|
return date_time
|
||||||
|
def get_us_timestamp(self,ts_str):
|
||||||
|
_ts = self.get_ms_timestamp(ts_str) * 1000
|
||||||
|
if " " in ts_str:
|
||||||
|
p = ts_str.split(" ")[1]
|
||||||
|
if len(p) > 12:
|
||||||
|
us_ts = p[12:15]
|
||||||
|
_ts += int(us_ts)
|
||||||
|
return _ts
|
||||||
|
def get_ns_timestamp(self,ts_str):
|
||||||
|
_ts = self.get_us_timestamp(ts_str) *1000
|
||||||
|
if " " in ts_str:
|
||||||
|
p = ts_str.split(" ")[1]
|
||||||
|
if len(p) > 15:
|
||||||
|
us_ts = p[15:]
|
||||||
|
_ts += int(us_ts)
|
||||||
|
return _ts
|
||||||
|
def time_transform(self,ts_str,precision):
|
||||||
|
date_time = []
|
||||||
|
if precision == 'ms':
|
||||||
|
for i in ts_str:
|
||||||
|
date_time.append(self.get_ms_timestamp(i))
|
||||||
|
elif precision == 'us':
|
||||||
|
for i in ts_str:
|
||||||
|
date_time.append(self.get_us_timestamp(i))
|
||||||
|
elif precision == 'ns':
|
||||||
|
for i in ts_str:
|
||||||
|
date_time.append(self.get_ns_timestamp(i))
|
||||||
|
return date_time
|
|
@ -108,8 +108,8 @@ class TDTestCase:
|
||||||
tdSql.error(f'alter stable {self.stbname}_{i} add column {key} {values}')
|
tdSql.error(f'alter stable {self.stbname}_{i} add column {key} {values}')
|
||||||
tdSql.error(f'alter stable {self.stbname}_{i} drop column {key}')
|
tdSql.error(f'alter stable {self.stbname}_{i} drop column {key}')
|
||||||
#! bug TD-16921
|
#! bug TD-16921
|
||||||
#tdSql.error(f'alter stable {self.ntbname} add column {key} {values}')
|
tdSql.error(f'alter stable {self.ntbname} add column {key} {values}')
|
||||||
#tdSql.error(f'alter stable {self.ntbname} drop column {key}')
|
tdSql.error(f'alter stable {self.ntbname} drop column {key}')
|
||||||
tdSql.execute(f'alter stable {self.stbname} drop column {key}')
|
tdSql.execute(f'alter stable {self.stbname} drop column {key}')
|
||||||
tdSql.query(f'describe {self.stbname}')
|
tdSql.query(f'describe {self.stbname}')
|
||||||
tdSql.checkRows(len(self.column_dict)+len(self.tag_dict))
|
tdSql.checkRows(len(self.column_dict)+len(self.tag_dict))
|
||||||
|
@ -132,7 +132,7 @@ class TDTestCase:
|
||||||
tdSql.checkEqual(result[0][2],self.binary_length+1)
|
tdSql.checkEqual(result[0][2],self.binary_length+1)
|
||||||
tdSql.error(f'alter stable {self.stbname}_{i} modify column {key} {v}')
|
tdSql.error(f'alter stable {self.stbname}_{i} modify column {key} {v}')
|
||||||
#! bug TD-16921
|
#! bug TD-16921
|
||||||
# tdSql.error(f'alter stable {self.ntbname} modify column {key} {v}')
|
tdSql.error(f'alter stable {self.ntbname} modify column {key} {v}')
|
||||||
elif 'nchar' in values.lower():
|
elif 'nchar' in values.lower():
|
||||||
v = f'nchar({self.binary_length+1})'
|
v = f'nchar({self.binary_length+1})'
|
||||||
v_error = f'nchar({self.binary_length-1})'
|
v_error = f'nchar({self.binary_length-1})'
|
||||||
|
@ -147,11 +147,11 @@ class TDTestCase:
|
||||||
tdSql.checkEqual(result[0][2],self.binary_length+1)
|
tdSql.checkEqual(result[0][2],self.binary_length+1)
|
||||||
tdSql.error(f'alter stable {self.stbname}_{i} modify column {key} {v}')
|
tdSql.error(f'alter stable {self.stbname}_{i} modify column {key} {v}')
|
||||||
#! bug TD-16921
|
#! bug TD-16921
|
||||||
#tdSql.error(f'alter stable {self.ntbname} modify column {key} {v}')
|
tdSql.error(f'alter stable {self.ntbname} modify column {key} {v}')
|
||||||
else:
|
else:
|
||||||
for v in self.column_dict.values():
|
for v in self.column_dict.values():
|
||||||
tdSql.error(f'alter stable {self.stbname} modify column {key} {v}')
|
tdSql.error(f'alter stable {self.stbname} modify column {key} {v}')
|
||||||
# tdSql.error(f'alter stable {self.ntbname} modify column {key} {v}')
|
tdSql.error(f'alter stable {self.ntbname} modify column {key} {v}')
|
||||||
for i in range(self.tbnum):
|
for i in range(self.tbnum):
|
||||||
tdSql.error(f'alter stable {self.stbname}_{i} modify column {key} {v}')
|
tdSql.error(f'alter stable {self.stbname}_{i} modify column {key} {v}')
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
|
@ -1,201 +1,170 @@
|
||||||
from util.log import *
|
from util.log import *
|
||||||
from util.sql import *
|
from util.sql import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
|
from util.gettime import *
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
|
|
||||||
def init(self, conn, logSql):
|
def init(self, conn, logSql):
|
||||||
tdLog.debug(f"start to excute {__file__}")
|
tdLog.debug(f"start to excute {__file__}")
|
||||||
tdSql.init(conn.cursor())
|
tdSql.init(conn.cursor())
|
||||||
|
self.get_time = GetTime()
|
||||||
|
self.ts_str = [
|
||||||
|
'2020-1-1',
|
||||||
|
'2020-2-1 00:00:01',
|
||||||
|
'2020-3-1 00:00:00.001',
|
||||||
|
'2020-4-1 00:00:00.001002',
|
||||||
|
'2020-5-1 00:00:00.001002001'
|
||||||
|
|
||||||
|
]
|
||||||
|
self.db_param_precision = ['ms','us','ns']
|
||||||
|
self.time_unit = ['1w','1d','1h','1m','1s','1a','1u','1b']
|
||||||
|
self.error_unit = ['2w','2d','2h','2m','2s','2a','2u','1c','#1']
|
||||||
|
self.ntbname = 'ntb'
|
||||||
|
self.stbname = 'stb'
|
||||||
|
self.ctbname = 'ctb'
|
||||||
|
self.subtractor = 1 # unit:s
|
||||||
|
def check_tbtype(self,tb_type):
|
||||||
|
if tb_type.lower() == 'ntb':
|
||||||
|
tdSql.query(f'select timediff(ts,{self.subtractor}) from {self.ntbname}')
|
||||||
|
elif tb_type.lower() == 'ctb':
|
||||||
|
tdSql.query(f'select timediff(ts,{self.subtractor}) from {self.ctbname}')
|
||||||
|
elif tb_type.lower() == 'stb':
|
||||||
|
tdSql.query(f'select timediff(ts,{self.subtractor}) from {self.stbname}')
|
||||||
|
def check_tb_type(self,unit,tb_type):
|
||||||
|
if tb_type.lower() == 'ntb':
|
||||||
|
tdSql.query(f'select timediff(ts,{self.subtractor},{unit}) from {self.ntbname}')
|
||||||
|
elif tb_type.lower() == 'ctb':
|
||||||
|
tdSql.query(f'select timediff(ts,{self.subtractor},{unit}) from {self.ctbname}')
|
||||||
|
elif tb_type.lower() == 'stb':
|
||||||
|
tdSql.query(f'select timediff(ts,{self.subtractor},{unit}) from {self.stbname}')
|
||||||
|
def data_check(self,date_time,precision,tb_type):
|
||||||
|
for unit in self.time_unit:
|
||||||
|
if (unit.lower() == '1u' and precision.lower() == 'ms') or (unit.lower() == '1b' and precision.lower() == 'us') or (unit.lower() == '1b' and precision.lower() == 'ms'):
|
||||||
|
if tb_type.lower() == 'ntb':
|
||||||
|
tdSql.error(f'select timediff(ts,{self.subtractor},{unit}) from {self.ntbname}')
|
||||||
|
elif tb_type.lower() == 'ctb':
|
||||||
|
tdSql.error(f'select timediff(ts,{self.subtractor},{unit}) from {self.ctbname}')
|
||||||
|
elif tb_type.lower() == 'stb':
|
||||||
|
tdSql.error(f'select timediff(ts,{self.subtractor},{unit}) from {self.stbname}')
|
||||||
|
elif precision.lower() == 'ms':
|
||||||
|
self.check_tb_type(unit,tb_type)
|
||||||
|
tdSql.checkRows(len(self.ts_str))
|
||||||
|
if unit.lower() == '1a':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i])-self.subtractor*1000)
|
||||||
|
elif unit.lower() == '1s':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]/1000)-self.subtractor)
|
||||||
|
elif unit.lower() == '1m':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000)-self.subtractor)/60))
|
||||||
|
elif unit.lower() == '1h':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000)-self.subtractor)/60/60))
|
||||||
|
elif unit.lower() == '1d':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000)-self.subtractor)/60/60/24))
|
||||||
|
elif unit.lower() == '1w':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000)-self.subtractor)/60/60/24/7))
|
||||||
|
self.check_tbtype(tb_type)
|
||||||
|
tdSql.checkRows(len(self.ts_str))
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i])-self.subtractor*1000)
|
||||||
|
elif precision.lower() == 'us':
|
||||||
|
self.check_tb_type(unit,tb_type)
|
||||||
|
tdSql.checkRows(len(self.ts_str))
|
||||||
|
if unit.lower() == '1w':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000)-self.subtractor)/60/60/24/7))
|
||||||
|
elif unit.lower() == '1d':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000)-self.subtractor)/60/60/24))
|
||||||
|
elif unit.lower() == '1h':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000)-self.subtractor)/60/60))
|
||||||
|
elif unit.lower() == '1m':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000)-self.subtractor)/60))
|
||||||
|
elif unit.lower() == '1s':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000)-self.subtractor)))
|
||||||
|
elif unit.lower() == '1a':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000)-self.subtractor*1000)))
|
||||||
|
elif unit.lower() == '1u':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i])-self.subtractor*1000000)))
|
||||||
|
self.check_tbtype(tb_type)
|
||||||
|
tdSql.checkRows(len(self.ts_str))
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i])-self.subtractor*1000000)))
|
||||||
|
elif precision.lower() == 'ns':
|
||||||
|
self.check_tb_type(unit,tb_type)
|
||||||
|
tdSql.checkRows(len(self.ts_str))
|
||||||
|
if unit.lower() == '1w':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000000)-self.subtractor)/60/60/24/7))
|
||||||
|
elif unit.lower() == '1d':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000000)-self.subtractor)/60/60/24))
|
||||||
|
elif unit.lower() == '1h':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000000)-self.subtractor)/60/60))
|
||||||
|
elif unit.lower() == '1m':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000000)-self.subtractor)/60))
|
||||||
|
elif unit.lower() == '1s':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000000)-self.subtractor)))
|
||||||
|
elif unit.lower() == '1a':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000)-self.subtractor*1000)))
|
||||||
|
elif unit.lower() == '1u':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000)-self.subtractor*1000000)))
|
||||||
|
# self.check_tbtype(tb_type)
|
||||||
|
# tdSql.checkRows(len(self.ts_str))
|
||||||
|
# for i in range(len(self.ts_str)):
|
||||||
|
# tdSql.checkEqual(tdSql.queryResult[i][0],int(((date_time[i]/1000000)-self.subtractor*1000000000)))
|
||||||
|
for unit in self.error_unit:
|
||||||
|
if tb_type.lower() == 'ntb':
|
||||||
|
tdSql.error(f'select timediff(ts,{self.subtractor},{unit}) from {self.ntbname}')
|
||||||
|
tdSql.error(f'select timediff(c0,{self.subtractor},{unit}) from {self.ntbname}')
|
||||||
|
elif tb_type.lower() == 'ctb':
|
||||||
|
tdSql.error(f'select timediff(ts,{self.subtractor},{unit}) from {self.ctbname}')
|
||||||
|
tdSql.error(f'select timediff(c0,{self.subtractor},{unit}) from {self.ntbname}')
|
||||||
|
elif tb_type.lower() == 'stb':
|
||||||
|
tdSql.error(f'select timediff(ts,{self.subtractor},{unit}) from {self.stbname}')
|
||||||
|
tdSql.error(f'select timediff(c0,{self.subtractor},{unit}) from {self.ntbname}')
|
||||||
|
def function_check_ntb(self):
|
||||||
|
for precision in self.db_param_precision:
|
||||||
|
tdSql.execute('drop database if exists db')
|
||||||
|
tdSql.execute(f'create database db precision "{precision}"')
|
||||||
|
tdSql.execute('use db')
|
||||||
|
tdSql.execute(f'create table {self.ntbname} (ts timestamp,c0 int)')
|
||||||
|
for ts in self.ts_str:
|
||||||
|
tdSql.execute(f'insert into {self.ntbname} values("{ts}",1)')
|
||||||
|
for unit in self.error_unit:
|
||||||
|
tdSql.error(f'select timediff(ts,{self.subtractor},{unit}) from {self.ntbname}')
|
||||||
|
date_time = self.get_time.time_transform(self.ts_str,precision)
|
||||||
|
self.data_check(date_time,precision,'ntb')
|
||||||
|
def function_check_stb(self):
|
||||||
|
for precision in self.db_param_precision:
|
||||||
|
tdSql.execute('drop database if exists db')
|
||||||
|
tdSql.execute(f'create database db precision "{precision}"')
|
||||||
|
tdSql.execute('use db')
|
||||||
|
tdSql.execute(f'create table {self.stbname} (ts timestamp,c0 int) tags(t0 int)')
|
||||||
|
tdSql.execute(f'create table {self.ctbname} using {self.stbname} tags(1)')
|
||||||
|
for ts in self.ts_str:
|
||||||
|
tdSql.execute(f'insert into {self.ctbname} values("{ts}",1)')
|
||||||
|
date_time = self.get_time.time_transform(self.ts_str,precision)
|
||||||
|
self.data_check(date_time,precision,'ctb')
|
||||||
|
self.data_check(date_time,precision,'stb')
|
||||||
def run(self): # sourcery skip: extract-duplicate-method
|
def run(self): # sourcery skip: extract-duplicate-method
|
||||||
tdSql.prepare()
|
|
||||||
tdLog.printNoPrefix("==========step1:create tables==========")
|
|
||||||
tdSql.execute(
|
|
||||||
'''create table if not exists ntb
|
|
||||||
(ts timestamp, c1 int, c2 float,c3 double,c4 timestamp)
|
|
||||||
'''
|
|
||||||
)
|
|
||||||
tdSql.execute(
|
|
||||||
'''create table if not exists stb
|
|
||||||
(ts timestamp, c1 int, c2 float,c3 double,c4 timestamp) tags(t0 int)
|
|
||||||
'''
|
|
||||||
)
|
|
||||||
tdSql.execute(
|
|
||||||
'''create table if not exists stb_1 using stb tags(100)
|
|
||||||
'''
|
|
||||||
)
|
|
||||||
tdLog.printNoPrefix("==========step2:insert data into ntb==========")
|
|
||||||
|
|
||||||
# RFC3339:2020-01-01T00:00:00+8:00
|
|
||||||
# ISO8601:2020-01-01T00:00:00.000+0800
|
|
||||||
tdSql.execute(
|
|
||||||
'insert into ntb values(now,1,1.55,100.555555,today())("2020-1-1 00:00:00",10,11.11,99.999999,now())(today(),3,3.333,333.333333,now())')
|
|
||||||
tdSql.execute(
|
|
||||||
'insert into stb_1 values(now,1,1.55,100.555555,today())("2020-1-1 00:00:00",10,11.11,99.999999,now())(today(),3,3.333,333.333333,now())')
|
|
||||||
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00') from ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.query("select timediff(1,0,1d) from ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1d) from db.ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1s) from ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1)
|
|
||||||
tdSql.query("select timediff(1,0,1s) from db.ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1)
|
|
||||||
tdSql.query("select timediff(1,0,1w) from ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1w) from db.ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1h) from ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1h) from db.ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1m) from ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1m) from db.ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff(1,0,1a) from ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1000)
|
|
||||||
tdSql.query("select timediff(1,0,1a) from db.ntb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1000)
|
|
||||||
tdSql.error("select timediff(1,0,1u) from ntb")
|
|
||||||
#tdSql.checkRows(3)
|
|
||||||
#tdSql.checkData(0,0,1000000)
|
|
||||||
tdSql.error("select timediff(1,0,1u) from db.ntb")
|
|
||||||
#tdSql.checkRows(3)
|
|
||||||
#tdSql.checkData(0,0,1000000)
|
|
||||||
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00') from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00') from db.stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1d) from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1d) from db.stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1h) from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,24)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1h) from db.stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,24)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1w) from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1m) from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1440)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1m) from db.stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,1440)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1s) from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,86400)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1s) from db.stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,86400)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1a) from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,86400000)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1a) from db.stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,86400000)
|
|
||||||
tdSql.error("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1u) from stb")
|
|
||||||
#tdSql.checkRows(3)
|
|
||||||
#tdSql.checkData(0,0,86400000000)
|
|
||||||
tdSql.error("select timediff('2020-1-1 00:00:00','2020-1-2 00:00:00',1u) from db.stb")
|
|
||||||
#tdSql.checkRows(3)
|
|
||||||
#tdSql.checkData(0,0,86400000000)
|
|
||||||
|
|
||||||
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00') from stb_1")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00') from db.stb_1")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1w) from stb_1 ")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1w) from db.stb_1 ")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1d) from stb_1 ")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1d) from db.stb_1 ")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,0)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1h) from stb_1 ")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,12)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1h) from db.stb_1 ")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,12)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1m) from stb_1" )
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,720)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1m) from db.stb_1" )
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,720)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1s) from stb_1")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,43200)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1s) from db.stb_1")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,43200)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1a) from stb_1")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,43200000)
|
|
||||||
tdSql.query("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1a) from db.stb_1")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,43200000)
|
|
||||||
tdSql.error("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1u) from stb_1")
|
|
||||||
#tdSql.checkRows(3)
|
|
||||||
#tdSql.checkData(0,0,43200000000)
|
|
||||||
tdSql.error("select timediff('2020-1-1 00:00:00','2020-1-1 12:00:00',1u) from db.stb_1")
|
|
||||||
#tdSql.checkRows(3)
|
|
||||||
#tdSql.checkData(0,0,43200000000)
|
|
||||||
|
|
||||||
tdSql.query("select timediff('a','b') from stb")
|
|
||||||
tdSql.checkRows(3)
|
|
||||||
tdSql.checkData(0,0,None)
|
|
||||||
tdSql.checkData(1,0,None)
|
|
||||||
tdSql.checkData(2,0,None)
|
|
||||||
tdSql.error("select timediff(1.5,1.5) from stb")
|
|
||||||
tdSql.error("select timediff(1) from stb")
|
|
||||||
tdSql.error("select timediff(10,1,1.5) from stb")
|
|
||||||
# tdSql.error("select timediff(10,1,2s) from stb")
|
|
||||||
# tdSql.error("select timedifff(10,1,c1) from stb")
|
|
||||||
tdSql.error("select timediff(1.5,1.5) from stb_1")
|
|
||||||
tdSql.error("select timediff(1) from stb_1")
|
|
||||||
tdSql.error("select timediff(10,1,1.5) from stb_1")
|
|
||||||
# tdSql.error("select timediff(10,1,2s) from stb_1")
|
|
||||||
# tdSql.error("select timedifff(10,1,c1) from stb_1")
|
|
||||||
tdSql.error("select timediff(1.5,1.5) from ntb")
|
|
||||||
tdSql.error("select timediff(1) from ntb")
|
|
||||||
tdSql.error("select timediff(10,1,1.5) from ntb")
|
|
||||||
# tdSql.error("select timediff(10,1,2s) from ntb")
|
|
||||||
# tdSql.error("select timedifff(10,1,c1) from ntb")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
self.function_check_ntb()
|
||||||
|
self.function_check_stb()
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
|
|
|
@ -5,153 +5,115 @@ from util.sql import *
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from util.gettime import *
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
def init(self, conn, logSql):
|
def init(self, conn, logSql):
|
||||||
tdLog.debug("start to execute %s" % __file__)
|
tdLog.debug("start to execute %s" % __file__)
|
||||||
tdSql.init(conn.cursor())
|
tdSql.init(conn.cursor())
|
||||||
|
self.get_time = GetTime()
|
||||||
self.rowNum = 10
|
|
||||||
self.ts = 1537146000000 # 2018-9-17 09:00:00.000
|
|
||||||
|
|
||||||
self.ts_str = [
|
self.ts_str = [
|
||||||
'2020-1-1',
|
'2020-1-1',
|
||||||
'2020-2-1 00:00:01',
|
'2020-2-1 00:00:01',
|
||||||
'2020-3-1 00:00:00.001',
|
'2020-3-1 00:00:00.001',
|
||||||
'2020-4-1 00:00:00.001002',
|
'2020-4-1 00:00:00.001002',
|
||||||
'2020-5-1 00:00:00.001002001'
|
'2020-5-1 00:00:00.001002001'
|
||||||
|
|
||||||
]
|
]
|
||||||
self.db_param_precision = ['ms','us','ns']
|
self.db_param_precision = ['ms','us','ns']
|
||||||
self.time_unit = ['1w','1d','1h','1m','1s','1a','1u']
|
self.time_unit = ['1w','1d','1h','1m','1s','1a','1u','1b']
|
||||||
#self.error_unit = ['1b','2w','2d','2h','2m','2s','2a','2u','1c','#1']
|
self.error_unit = ['2w','2d','2h','2m','2s','2a','2u','1c','#1']
|
||||||
self.error_unit = ['2w','2d','2h','2m','2s','2a','2u','1c','#1']
|
self.error_unit = ['2w','2d','2h','2m','2s','2a','2u','1c','#1']
|
||||||
self.ntbname = 'ntb'
|
self.ntbname = 'ntb'
|
||||||
self.stbname = 'stb'
|
self.stbname = 'stb'
|
||||||
self.ctbname = 'ctb'
|
self.ctbname = 'ctb'
|
||||||
def get_ms_timestamp(self,ts_str):
|
|
||||||
_ts_str = ts_str
|
|
||||||
if " " in ts_str:
|
|
||||||
p = ts_str.split(" ")[1]
|
|
||||||
if len(p) > 15 :
|
|
||||||
_ts_str = ts_str[:-3]
|
|
||||||
if ':' in _ts_str and '.' in _ts_str:
|
|
||||||
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d %H:%M:%S.%f")
|
|
||||||
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
|
||||||
elif ':' in _ts_str and '.' not in _ts_str:
|
|
||||||
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d %H:%M:%S")
|
|
||||||
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
|
||||||
else:
|
|
||||||
timestamp = datetime.strptime(_ts_str, "%Y-%m-%d")
|
|
||||||
date_time = int(int(time.mktime(timestamp.timetuple()))*1000 + timestamp.microsecond/1000)
|
|
||||||
return date_time
|
|
||||||
def get_us_timestamp(self,ts_str):
|
|
||||||
_ts = self.get_ms_timestamp(ts_str) * 1000
|
|
||||||
if " " in ts_str:
|
|
||||||
p = ts_str.split(" ")[1]
|
|
||||||
if len(p) > 12:
|
|
||||||
us_ts = p[12:15]
|
|
||||||
_ts += int(us_ts)
|
|
||||||
return _ts
|
|
||||||
def get_ns_timestamp(self,ts_str):
|
|
||||||
_ts = self.get_us_timestamp(ts_str) *1000
|
|
||||||
if " " in ts_str:
|
|
||||||
p = ts_str.split(" ")[1]
|
|
||||||
if len(p) > 15:
|
|
||||||
us_ts = p[15:]
|
|
||||||
_ts += int(us_ts)
|
|
||||||
return _ts
|
|
||||||
def time_transform(self,ts_str,precision):
|
|
||||||
date_time = []
|
|
||||||
if precision == 'ms':
|
|
||||||
for i in ts_str:
|
|
||||||
date_time.append(self.get_ms_timestamp(i))
|
|
||||||
elif precision == 'us':
|
|
||||||
for i in ts_str:
|
|
||||||
date_time.append(self.get_us_timestamp(i))
|
|
||||||
elif precision == 'ns':
|
|
||||||
for i in ts_str:
|
|
||||||
date_time.append(self.get_us_timestamp(i))
|
|
||||||
return date_time
|
|
||||||
def check_ms_timestamp(self,unit,date_time):
|
def check_ms_timestamp(self,unit,date_time):
|
||||||
if unit.lower() == '1a':
|
if unit.lower() == '1a':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]))
|
tdSql.checkEqual(ts_result,int(date_time[i]))
|
||||||
elif unit.lower() == '1s':
|
elif unit.lower() == '1s':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000)*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000)*1000)
|
||||||
elif unit.lower() == '1m':
|
elif unit.lower() == '1m':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60)*60*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60)*60*1000)
|
||||||
elif unit.lower() == '1h':
|
elif unit.lower() == '1h':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60/60)*60*60*1000 )
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60/60)*60*60*1000 )
|
||||||
elif unit.lower() == '1d':
|
elif unit.lower() == '1d':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60/60/24)*24*60*60*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60/60/24)*24*60*60*1000)
|
||||||
elif unit.lower() == '1w':
|
elif unit.lower() == '1w':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_ms_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60/60/24/7)*7*24*60*60*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/60/60/24/7)*7*24*60*60*1000)
|
||||||
def check_us_timestamp(self,unit,date_time):
|
def check_us_timestamp(self,unit,date_time):
|
||||||
if unit.lower() == '1u':
|
if unit.lower() == '1u':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]))
|
tdSql.checkEqual(ts_result,int(date_time[i]))
|
||||||
elif unit.lower() == '1a':
|
elif unit.lower() == '1a':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000)*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000)*1000)
|
||||||
elif unit.lower() == '1s':
|
elif unit.lower() == '1s':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000)*1000*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000)*1000*1000)
|
||||||
elif unit.lower() == '1m':
|
elif unit.lower() == '1m':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60)*60*1000*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60)*60*1000*1000)
|
||||||
elif unit.lower() == '1h':
|
elif unit.lower() == '1h':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60/60)*60*60*1000*1000 )
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60/60)*60*60*1000*1000 )
|
||||||
elif unit.lower() == '1d':
|
elif unit.lower() == '1d':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60/60/24)*24*60*60*1000*1000 )
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60/60/24)*24*60*60*1000*1000 )
|
||||||
elif unit.lower() == '1w':
|
elif unit.lower() == '1w':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
ts_result = self.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
ts_result = self.get_time.get_us_timestamp(str(tdSql.queryResult[i][0]))
|
||||||
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60/60/24/7)*7*24*60*60*1000*1000)
|
tdSql.checkEqual(ts_result,int(date_time[i]/1000/1000/60/60/24/7)*7*24*60*60*1000*1000)
|
||||||
def check_ns_timestamp(self,unit,date_time):
|
def check_ns_timestamp(self,unit,date_time):
|
||||||
if unit.lower() == '1u':
|
if unit.lower() == '1b':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000)*1000)
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]))
|
||||||
|
elif unit.lower() == '1u':
|
||||||
|
for i in range(len(self.ts_str)):
|
||||||
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000)*1000)
|
||||||
elif unit.lower() == '1a':
|
elif unit.lower() == '1a':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000)*1000*1000)
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000)*1000*1000)
|
||||||
elif unit.lower() == '1s':
|
elif unit.lower() == '1s':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000)*1000*1000*1000)
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/1000)*1000*1000*1000)
|
||||||
elif unit.lower() == '1m':
|
elif unit.lower() == '1m':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/60)*60*1000*1000*1000)
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/1000/60)*60*1000*1000*1000)
|
||||||
elif unit.lower() == '1h':
|
elif unit.lower() == '1h':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/60/60)*60*60*1000*1000*1000 )
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/1000/60/60)*60*60*1000*1000*1000 )
|
||||||
elif unit.lower() == '1d':
|
elif unit.lower() == '1d':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/60/60/24)*24*60*60*1000*1000*1000 )
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/1000/60/60/24)*24*60*60*1000*1000*1000 )
|
||||||
elif unit.lower() == '1w':
|
elif unit.lower() == '1w':
|
||||||
for i in range(len(self.ts_str)):
|
for i in range(len(self.ts_str)):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/60/60/24/7)*7*24*60*60*1000*1000*1000)
|
tdSql.checkEqual(tdSql.queryResult[i][0],int(date_time[i]*1000/1000/1000/1000/1000/60/60/24/7)*7*24*60*60*1000*1000*1000)
|
||||||
|
def check_tb_type(self,unit,tb_type):
|
||||||
|
if tb_type.lower() == 'ntb':
|
||||||
|
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ntbname}')
|
||||||
|
elif tb_type.lower() == 'ctb':
|
||||||
|
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ctbname}')
|
||||||
|
elif tb_type.lower() == 'stb':
|
||||||
|
tdSql.query(f'select timetruncate(ts,{unit}) from {self.stbname}')
|
||||||
def data_check(self,date_time,precision,tb_type):
|
def data_check(self,date_time,precision,tb_type):
|
||||||
for unit in self.time_unit:
|
for unit in self.time_unit:
|
||||||
if (unit.lower() == '1u' and precision.lower() == 'ms') or () :
|
if (unit.lower() == '1u' and precision.lower() == 'ms') or (unit.lower() == '1b' and precision.lower() == 'us') or (unit.lower() == '1b' and precision.lower() == 'ms'):
|
||||||
if tb_type.lower() == 'ntb':
|
if tb_type.lower() == 'ntb':
|
||||||
tdSql.error(f'select timetruncate(ts,{unit}) from {self.ntbname}')
|
tdSql.error(f'select timetruncate(ts,{unit}) from {self.ntbname}')
|
||||||
elif tb_type.lower() == 'ctb':
|
elif tb_type.lower() == 'ctb':
|
||||||
|
@ -159,30 +121,15 @@ class TDTestCase:
|
||||||
elif tb_type.lower() == 'stb':
|
elif tb_type.lower() == 'stb':
|
||||||
tdSql.error(f'select timetruncate(ts,{unit}) from {self.stbname}')
|
tdSql.error(f'select timetruncate(ts,{unit}) from {self.stbname}')
|
||||||
elif precision.lower() == 'ms':
|
elif precision.lower() == 'ms':
|
||||||
if tb_type.lower() == 'ntb':
|
self.check_tb_type(unit,tb_type)
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ntbname}')
|
|
||||||
elif tb_type.lower() == 'ctb':
|
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ctbname}')
|
|
||||||
elif tb_type.lower() == 'stb':
|
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.stbname}')
|
|
||||||
tdSql.checkRows(len(self.ts_str))
|
tdSql.checkRows(len(self.ts_str))
|
||||||
self.check_ms_timestamp(unit,date_time)
|
self.check_ms_timestamp(unit,date_time)
|
||||||
elif precision.lower() == 'us':
|
elif precision.lower() == 'us':
|
||||||
if tb_type.lower() == 'ntb':
|
self.check_tb_type(unit,tb_type)
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ntbname}')
|
|
||||||
elif tb_type.lower() == 'ctb':
|
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ctbname}')
|
|
||||||
elif tb_type.lower() == 'stb':
|
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.stbname}')
|
|
||||||
tdSql.checkRows(len(self.ts_str))
|
tdSql.checkRows(len(self.ts_str))
|
||||||
self.check_us_timestamp(unit,date_time)
|
self.check_us_timestamp(unit,date_time)
|
||||||
elif precision.lower() == 'ns':
|
elif precision.lower() == 'ns':
|
||||||
if tb_type.lower() == 'ntb':
|
self.check_tb_type(unit,tb_type)
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ntbname}')
|
|
||||||
elif tb_type.lower() == 'ctb':
|
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.ctbname}')
|
|
||||||
elif tb_type.lower() == 'stb':
|
|
||||||
tdSql.query(f'select timetruncate(ts,{unit}) from {self.stbname}')
|
|
||||||
tdSql.checkRows(len(self.ts_str))
|
tdSql.checkRows(len(self.ts_str))
|
||||||
self.check_ns_timestamp(unit,date_time)
|
self.check_ns_timestamp(unit,date_time)
|
||||||
for unit in self.error_unit:
|
for unit in self.error_unit:
|
||||||
|
@ -200,9 +147,8 @@ class TDTestCase:
|
||||||
tdSql.execute(f'create table {self.ntbname} (ts timestamp,c0 int)')
|
tdSql.execute(f'create table {self.ntbname} (ts timestamp,c0 int)')
|
||||||
for ts in self.ts_str:
|
for ts in self.ts_str:
|
||||||
tdSql.execute(f'insert into {self.ntbname} values("{ts}",1)')
|
tdSql.execute(f'insert into {self.ntbname} values("{ts}",1)')
|
||||||
date_time = self.time_transform(self.ts_str,precision)
|
date_time = self.get_time.time_transform(self.ts_str,precision)
|
||||||
self.data_check(date_time,precision,'ntb')
|
self.data_check(date_time,precision,'ntb')
|
||||||
|
|
||||||
def function_check_stb(self):
|
def function_check_stb(self):
|
||||||
for precision in self.db_param_precision:
|
for precision in self.db_param_precision:
|
||||||
tdSql.execute('drop database if exists db')
|
tdSql.execute('drop database if exists db')
|
||||||
|
@ -212,7 +158,7 @@ class TDTestCase:
|
||||||
tdSql.execute(f'create table {self.ctbname} using {self.stbname} tags(1)')
|
tdSql.execute(f'create table {self.ctbname} using {self.stbname} tags(1)')
|
||||||
for ts in self.ts_str:
|
for ts in self.ts_str:
|
||||||
tdSql.execute(f'insert into {self.ctbname} values("{ts}",1)')
|
tdSql.execute(f'insert into {self.ctbname} values("{ts}",1)')
|
||||||
date_time = self.time_transform(self.ts_str,precision)
|
date_time = self.get_time.time_transform(self.ts_str,precision)
|
||||||
self.data_check(date_time,precision,'ctb')
|
self.data_check(date_time,precision,'ctb')
|
||||||
self.data_check(date_time,precision,'stb')
|
self.data_check(date_time,precision,'stb')
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
Loading…
Reference in New Issue