Sql server 从Apache Drill和datetimeoffset查询SQL Server
我试图从Apache Drill查询SQL Server,但当SQL Server表包含Sql server 从Apache Drill和datetimeoffset查询SQL Server,sql-server,datetimeoffset,apache-drill,Sql Server,Datetimeoffset,Apache Drill,我试图从Apache Drill查询SQL Server,但当SQL Server表包含datetimeoffset(SQL Server类型)列时,我遇到了一些问题 在此类表上从Drill到SQL Server的任何SELECT查询都会导致响应: 错误: 验证错误:未知的SQL类型-155 我确信它来自表中的datetimeoffset列,因为我在没有datetimeoffset列的表上测试了相同类型的查询,并获得了令人满意的结果 我浏览了Drill的文档(例如,本页),并尝试将datetim
datetimeoffset
(SQL Server类型)列时,我遇到了一些问题
在此类表上从Drill到SQL Server的任何SELECT查询都会导致响应:
错误:
验证错误:未知的SQL类型-155
我确信它来自表中的datetimeoffset列,因为我在没有datetimeoffset列的表上测试了相同类型的查询,并获得了令人满意的结果
我浏览了Drill的文档(例如,本页),并尝试将datetimeoffset
列转换为支持SQL的类型,但没有任何效果,Apache Drill一直回答我相同的错误
你知道怎么度过这一关吗 我可以确认这实际上是JDBC库没有很好地处理
DATETIMEOFFSET
的问题
我目前知道的唯一解决方案是在输出时转换数据,如下所示:
,CAST(my_datetimeoffset_col AS DATETIME2) as datetime_local
,CAST(SWITCHOFFSET(my_datetimeoffset_col, 0) AS DATETIME2) as datetime_utc
,DATEPART(TZ, my_datetimeoffset_col) as datetime_tz
您可以选择只输出UTC或本地时间,但根据我的经验,选择了DATETIMEOFFSET
,因为这两种时间都是需要的