将数据类型DBTYPE_DBTIMESTAMP转换为datetime2时出错

时间:2017-01-09 15:01:44

标签: sql sql-server-2014 filemaker

我有这段代码

SELECT
TRY_CONVERT(varchar(150), "PCR_Fecha")  AS "PCR_Fecha"
FROM OPENQUERY(EXTRACCION, 'SELECT * FROM EXTRACCION.Extraccion')

但我得到了错误

Error converting data type DBTYPE_DBTIMESTAMP to datetime2.

我知道PCR_Fecha中有错误的值(如40218:00:00或14mayo09),这就是我试图将它们转换为varchar的原因。

我可以使用

查看数据
SELECT * FROM OPENQUERY(EXTRACCION, 'SELECT CAST(PCR_Fecha AS varchar(26)) FROM EXTRACCION.Extraccion');

链接服务器来自Filemaker,PCR_Fecha被设置为日期。 寻找答案我发现我可以在连接字符串中定义“dbtimestamp_rules = 2”,但我不知道如何添加规则。

还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

我发现我可以从Filemaker更改数据类型并将其设置为文本(它是之前的日期)并解决了问题。

使用sql

SELECT
Convert(NVARCHAR(26),PCR_Fecha)
FROM OPENQUERY(EXTRACCION, 'SELECT CAST(PCR_Fecha AS VARCHAR(26)) as PCR_Fecha FROM EXTRACCION.Extraccion')

一个演员然后转换,无论如何thx:)