0

我是 polybase 的新手。我已将我的 SQL 2019 服务器链接到第三方 Azure cosmos,并且我能够从我的集合中查询数据。但是,当我尝试查询日期字段时出现错误。在文件中,日期定义为:

"created" : {
    "$date" : 1579540834768
},

在我的外部表中,我将列定义为

[created] DATE,

我试图将列创建为 int 和 nvarchar(128) 但模式检测每次都拒绝它。(我试图创建一个字段 created_date 但模式检测也不同意这是正确的。

当我尝试返回任何日期字段的查询时,我收到此错误:

Msg 105082, Level 16, State 1, Line 8
105082;Generic ODBC error: [Microsoft][Support] (40460) Fractional data truncated while performing conversion. .
OLE DB provider "MSOLEDBSQL" for linked server "(null)" returned message "Unspecified error".
Msg 7421, Level 16, State 2, Line 8
Cannot fetch the rowset from OLE DB provider "MSOLEDBSQL" for linked server "(null)". .

如果我尝试在查询中排除空值,则会发生这种情况 - 即使过滤到填充日期的特定记录(使用 Azure 门户界面验证)

我应该做些什么来处理json记录中的整数日期吗?或者我可以用来让我的外部表工作的其他类型?

4

1 回答 1

0

找到了解决方案。SQL Server 建议架构中 mongodb 日期的类型错误。使用 DateTime2 解决了这个问题。在 msdn的polybase 类型映射页面上找到了这个。

于 2020-01-21T13:17:23.543 回答