将 OPENQUERY 与 Oracle 数据库结合使用来查询日期范围

2023-12-05

我们有一个 Oracle 数据库,可以通过 OpenQuery 访问该数据库以获取某些内容。显然,您无法使用 OleDB 驱动程序直接在 OpenQuery 中进行日期比较,因此要解决此问题,您必须将日期转换为 Julien 日期并比较这些数字。我有以下查询,我们尝试在 MS SQL Server 中执行此查询(GPROD 是通过 OleDb 驱动程序的链接服务器):

SELECT *
FROM  OPENQUERY(GPROD, '
     SELECT * 
     FROM ORD_HDR_HST 
     WHERE (cast(to_number(to_char(SHIP_DATE ,''J'')) as numeric(10,0))  >= cast(to_number(to_char(to_date(''01-JAN-2015'') ,''J'')) as numeric(10,0))  AND 
            cast(to_number(to_char(SHIP_DATE ,''J'')) as numeric(10,0))  <= cast(to_number(to_char(to_date(''21-SEP-2015'') ,''J'')) as numeric(10,0)) )')

此查询不返回结果,但也不会产生错误。

如果我在 Oracle SQL Developer 中执行此查询,它会正常工作并返回数千行:

SELECT * 
FROM ORD_HDR_HST 
WHERE (cast(to_number(to_char(SHIP_DATE ,'J')) as numeric(10,0))  >= cast(to_number(to_char(to_date('01-JAN-2015') ,'J')) as numeric(10,0))  AND 
       cast(to_number(to_char(SHIP_DATE ,'J')) as numeric(10,0))  <= cast(to_number(to_char(to_date('21-SEP-2015') ,'J')) as numeric(10,0)) )

The SHIP_DATE字段的类型为 DATE,并且可以为空(如果重要的话)。

有谁知道我可以做什么来通过 OpenQuery 实现此功能?

Edit:

我对朱利安日期转换进行了测试,肯定存在一些可疑的情况,但我不知道是什么原因造成的。如果我在 Oracle 中执行:

select cast(to_number(to_char(to_date('01-JAN-2015') ,'J')) as numeric(10,0)) from dual

我得到 2457024

如果我在 SQL Server 上执行此操作:

select * from OPENQUERY(GPROD, 'select cast(to_number(to_char(to_date(''01-JAN-2015'') ,''J'')) as numeric(10,0)) from dual')

我得到1721443


我找到了解决问题的方法。通过指定日期掩码,它将提供正确的结果。使用:

to_char(to_date('01-JAN-2015','DD-MON-YYYY') ,'J') 

代替

to_char(to_date('01-JAN-2015') ,'J') 

通过 OpenQuery 和直接从 Oracle 给出相同的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 OPENQUERY 与 Oracle 数据库结合使用来查询日期范围 的相关文章

随机推荐

  • 如何在运行时切换resx?

    我有第二个 resx 文件 Strings ps ps resx 我想在运行时将代码指向它 每个 resx 都有 Designer cs 和唯一的类名 我必须自己切换 包装这些东西吗 或者有一些内置的方法吗 您需要更改 UI 文化才能使用不
  • 使用 ZipOutputStream 将包含多个 .csv 文件的 .zip 文件返回到浏览器

    首先 我很清楚 Stack OverFlow 上有一个类似的主题 但这并不能解决我的问题 这就是我发这篇文章的原因 目前 我的程序能够根据一定的条件在本地搜索 csv 文件 将它们添加到列表中 然后创建一个 zip 格式的文件 其中包含所有
  • 如何在django中注册后自动登录用户

    这是我目前用于注册的 def register request if request method POST form UserCreationForm request POST if form is valid new user form
  • Python AttributeError:“模块”对象没有属性“SSL_ST_INIT”

    我的一个 Python 脚本失败了 Traceback most recent call last File inspect sheet py line 21 in
  • Android开发中Fragment之间传递对象数组列表

    我正在尝试在 Android 开发中的片段之间传递 arraylist 这是我尝试将事务数组列表传递给另一个片段的部分 switch menuItem getItemId case R id expenses final ExpenseAc
  • SSIS导出到Excel

    使用 SSMS 我创建了一个导出到 Excel 的查询并将其保存为 DTSX 包 将此 DTSX 包导入到 BIDS 项目中 使其每小时运行一次 并导出一个带有时间戳的 Excel 文件 使用表达式的动态名称 当我从 BIDS 运行时 包成
  • 仅限 C++:一元减 0x80000000

    这个问题据说是针对语言律师的 假设有符号整型和无符号整型都是 32 位宽 如 n3337 pdf 草案 5 3 1 8 中所述 0x80000000u 0x100000000u 0x80000000u 0x80000000u 但我找不到这个
  • 使用 JPA EntityManager 批量插入

    有没有一种方法可以让我们使用 JPA EntityManager 进行批量插入 我知道没有直接的方法可以实现这一点 但必须有某种方法来实现这种机制 实际上 对于每个插入操作 它需要 300 毫秒 我想使用批量插入而不是单个插入来减少这个时间
  • 注射器返回未定义的值?

    我试图从我的遗留代码中获取服务并遇到一个奇怪的错误injector 返回未定义 检查这个plnkr 另外 我正在尝试将新的属性值设置回服务 这是否会在不使用监视的情况下反映到范围 非常感谢您 非常感谢任何指点或建议 您试图在 DOM 构建之
  • Spring 3 - 访问 jsp 中的 messages.properties

    我是 spring 3 的新手 并且已经被困在这个问题上一段时间了 您知道如何从 jsp 访问 messages properties 吗 例如 在控制器中我为模型设置了一个值 model setError user not found 消
  • Gnuplot 中某些特定值的不同颜色的颜色条

    我正在使用 Gnuplot 生成直方图 但如果值高于 低于特定值 我需要将其中一些颜色着色为另一种颜色 例如 如果值 10 值 20 则将直方图着色为红色 所以我希望图表是这样的 x y color 1 4 绿色的 2 15 黄色的 3 4
  • Java:FloatBuffer 到 OpenGL - wrap() 与 allocate() 与 BufferUtils.createBuffer()

    数据源 float v 工作示例 FloatBuffer buf BufferUtils createFloatBuffer v length buf put v buf flip or buf rewind 现在可以将缓冲区上传到 ope
  • 这个正则表达式不应该工作吗?

    testString something something task type Checkin patt new RegExp something w match patt exec testString document querySe
  • 使用 PouchDB 作为离线栅格地图缓存

    我一直在探索使用 PouchDB 作为栅格地图图块的离线缓存 具体来说 对于传单 我刚刚完成了一些初步测试 我想我会分享这些测试 我创建了一个 JsFiddle 实际上我现在更喜欢 CodePen 作为展示如何使用 PouchDB 缓存离线
  • 从pdf文件中提取文本

    我需要从 pdf 文件中提取文本 逐字 import java io import com itextpdf text import com itextpdf text pdf import com itextpdf text pdf pa
  • 如何让 .js 和 .js.map 文件滚动成为 .ts 文件下的子文件

    我有一堆 js 和 js map 文件 这些文件没有汇总在相关的 ts 文件下 这使得找到我感兴趣的文件变得更加困难 在使用 Webstorm 之前我尝试过 Eclipse 并TypeEcs 插件关于这个项目 我认为这就是导致我的问题的原因
  • 如何从 Windows 启动 Mongo DB?

    我已经在 Windows 7 64 位 机器上安装了 MongoDB 我也创建了路径 data db 但当我尝试使用命令启动 mongodb 时 C mongodb bin mongod exe 它没有启动 它正在显示admin web c
  • Javascript从具有多个属性的文件输入元素获取文件数量及其文件名?

    我有一个文件输入multiple multiple 属性允许用户一次选择多个文件 我想在上传之前显示选定的文件名及其计数 但是我不确定如何使用 javascript 从文件输入元素获取此信息
  • 用于转换为任何本地时间的 C++ 库(由 linux zoneinfo 字符串定义)

    我正在寻找一个 C 库来将 UTC 时间转换为任何本地时间 反之亦然 不仅是计算机的时区 而且是任何给定的时区 时区由 unix zoneinfo 字符串 例如 Europe Paris Olson 字符串定义 该库应该在 Windows
  • 将 OPENQUERY 与 Oracle 数据库结合使用来查询日期范围

    我们有一个 Oracle 数据库 可以通过 OpenQuery 访问该数据库以获取某些内容 显然 您无法使用 OleDB 驱动程序直接在 OpenQuery 中进行日期比较 因此要解决此问题 您必须将日期转换为 Julien 日期并比较这些