【发布时间】:2020-07-02 21:24:08
【问题描述】:
我在 Microsoft SQL Server Management Studio 18 中将 Oracle 数据库链接到我的 SQL Server。服务器对象 -> 链接服务器。
我有一条 SQL 语句,当我在 Oracle 开发人员工具/平台上运行时,它会按预期返回信息。但是当我在 SQL Server 上运行完全相同的查询时,它返回的结果不正确(行和列中的实际值不匹配)。
我知道的。
- 我查询的表位于 Oracle 数据库中。
- 如果我在 WHERE 语句中排除任何涉及 DATE 的内容,我可以在 Oracle Developer 和 SQL Server 上获得相同/匹配的结果。
有什么想法吗?
下面的查询示例。 适用于 Oracle Developer 但不适用于 MSSQL
SELECT * FROM TABLE1
WHERE status = 'Deviation' and trunc(SRC_ROW_UPDT) BETWEEN TO_DATE('01/03/2020', 'DD/MM/YYYY') AND TO_DATE('10/12/2020','DD/MM/YYYY');
下面的查询示例。 适用于 Oracle Developer 和 MSSQL
SELECT * FROM TABLE1
WHERE status = 'Deviation' and BATCHID = 'ThisBAtchID';
【问题讨论】:
-
尝试向我们展示查询,因为它似乎是 where + date 的问题。
-
我在上面加了。我不认为 MSSQL 语句喜欢“trunc, between, to_date”,但我尝试更改它以满足日期之间过滤器的 mssql 格式,但仍然没有得到正确的信息返回。
-
两件事,1) 首先构建一个在 Oracle 和 SQL Server 中都有效的查询,即只使用两者通用的函数。 2)确保您使用明确的日期格式,例如ISO。
标签: sql sql-server oracle