我是TEIID和VDB的新手。根据我的需要,我需要使用Postgres SQL通过验证转换的时间戳来提取VDB数据。
问题是
下面是我要执行的示例查询。
select col1, col2, col3 from (EXEC my_Views.get_mytable('2022-01-01 00:00:00.000', now())) as TAB where my_date >= to_char(to_timestamp('2022-06-15T08:27:00.599Z','YYYY-MM-DD"T"HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')
问题是,WHERE子句中没有发生转换。
我面临的问题是
当我每次在postgres中尝试不同的转换技巧时,我得到了不同的问题。
(1)
ERROR: TEIID31100解析错误:遇到"‘2022 - 06 - 15 t08:27:00.599z’,‘YYYY-MM-DD" T"HH24: MI: SS),"[] YYYY [] -MM"在第1行,第672列。正期待着:& & &;|"between"|"in"|"女儿家;|"like"|"like_regex"|"not"|"or"|"order"|"similar"TEIID31100: TEIID31100遇到错误:"‘2022 - 06 - 15 t08:27:00.599z’,‘YYYY-MM-DD" T"HH24: MI: SS),"[] YYYY [] -MM"在第1行,第672列。正期待着:& & &;|"between"|"in"|"女儿家;|"like"|"like_regex"|"not"|"or"|"order"|"similar"执行查询nil
时出错
(2)
错误:TEIID30068函数'date_trunc('second'),cast('2022-06-15T08:31:00.731Z' AS timestamp))'是一个未知的形式。检查函数名和参数数量是否为teiidsqlexception: TEIID30068函数'date_trunc('second', cast('2022-06-15T08:31:00.731Z'作为时间戳))'是一种未知的形式。检查函数的名称和编号执行查询nil
时出错
我试着
select col1,col2,col3 from (EXEC my_Views.get_mytable('2022-01-01 00:00:00.000', now())) as TAB where my_date >= to_char(to_timestamp('2022-06-15T08:27:00.599Z','YYYY-MM-DD"T"HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')
select col1, col2, col3 from (EXEC my_Views.get_mytable('2022-01-01 00:00:00.000', now())) as TAB where my_date >= date_trunc('second', '2022-06-15T08:27:00.599Z'::timestamp)
我觉得转换问题会解决的。
输入TS: '2022-06-15TZ "(YYYY-MM-DDTHH: mm: ss。Z )
预期时间:'2022-06-15 08:27:00' (YYYY-MM-DD HH:mm:ss)
我最初认为这是postgres的问题,后来我意识到这不是postgres的问题。我在postgres中应用了一些转换技术,但运气不好。这些转换查询是工作在DB小提琴,但不是在python和postgres。
希望我的东西能帮助你理解这个问题。请帮我解决这个问题。
谢谢。
在teiid函数中没有特定的函数可以转换我想要的TS格式。在我的例子中,我使用substr捕获所需的TS。它工作。
参考链接teiid