从Apache Drill和datetimeoffset

时间:2016-02-10 14:15:47

标签: sql-server datetimeoffset apache-drill

我正在尝试从Apache Drill查询SQL Server,但是当SQL Server表包含datetimeoffset(SQL Server类型)列时,我遇到了一些问题。

在这种表上从Drill到SQL Server的任何SELECT查询都会导致响应:

错误:

  

验证错误:未知的SQL类型-155

我确信它来自表中的datetimeoffset列,因为我在没有datetimeoffset列的表上测试了相同类型的查询,并获得了令人满意的结果。

我查看了Drill的文档(例如此页面https://drill.apache.org/docs/supported-data-types/),并尝试将datetimeoffset列转换为SQL支持的类型,但没有任何效果,Apache Drill一直在回答我同样的错误。

你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我可以确认它实际上是一个问题DATETIMEOFFSET https://msdn.microsoft.com/en-us/library/bb677267.aspx没有得到JDBC库的良好处理。

我目前所知道的解决方案只是在出路时转换数据:

,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被选中,因为两者都将被需要。