You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Open Query查询Postgres链接服务器中晚于SQL Server的datetime2数据

问题:通过链接服务器从Postgres同步SQL Server未同步的新数据

我需要识别Postgres数据库中本地SQL Server 2017尚未同步的新数据,将其下载到本地SQL Server。目前通过链接服务器连接Postgres,使用OPENQUERY进行操作。

现有操作步骤

  1. 将本地SQL Server events表中最大的datetime2(7)值插入临时表#latest:
CREATE TABLE #latest (latest DATETIME2(7))

临时表数据如下:

latest
2023-01-26 14:40:19.1470000
  1. 链接服务器的event表包含一个timestamp with time zone类型的time列,执行以下代码可正常返回结果:
DECLARE @Query          NVARCHAR(MAX)
SELECT
    @Query = '
    SELECT
        [time],[eventID]
    FROM OPENQUERY(
    [PostgresServer]
    ,''
        select 
            "time",
            "eventID"
        from "event" t 
        limit 1
    ''
    )' 
FROM #latest

EXECUTE sp_executesql @Query

返回结果:

timeeventID
2022-11-17 11:05:17.2450000730d544e-de4b-47a7-b8d0-80742dc4240d

遇到的错误情况

1. 语法错误

添加WHERE子句筛选大于本地最新时间的数据时,出现语法错误:

DECLARE @Query          NVARCHAR(MAX)
SELECT
    @Query = '
    SELECT
        [time],[eventID]
    FROM OPENQUERY(
    [PostgresServer]
    ,''
        select 
            "time",
            "eventID"
        from "event" t 
        where "time" > '[latest]'
        limit 1
    ''
    )' 
FROM #latest

EXECUTE sp_executesql @Query

错误提示:

Msg 102, Level 15, State 1, Line 33
Incorrect syntax near 'latest'.

2. 类型不兼容错误

尝试用+拼接类型转换后的latest值时,出现类型不兼容错误:

The data types varchar and datetime2 are incompatible in the add operator.

3. OLE DB提供器错误

修改为以下写法后,出现OLE DB提供器相关错误:

where "time" > '+CAST([latest] AS NVARCHAR(100))+'

错误提示:

Msg 7399, Level 16, State 1, Line 22
The OLE DB provider "MSDASQL" for linked server "PostgresServer" reported an error. The provider did not give any information about the error.

Msg 7350, Level 16, State 2, Line 22
Cannot get the column information from OLE DB provider "MSDASQL" for linked server "PostgresServer".

求助

请问有没有更好的方法识别链接服务器上的新数据?或者如何修复上述错误?

内容的提问来源于stack exchange,提问作者thedegatron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:35:23