首页 > 解决方案 > 如何将 sql 脚本中的日期与进度数据库进行比较?

问题描述

我们的进度数据库中有一个字段是 DATETIME-TZ,因此数据示例是“23/05/2019 12:11:16.099” - 我需要一些帮助才能将此字段中的日期与 SQL 选择语句进行比较

在进行过程编辑器中,我可以轻松比较日期,例如

从 accadd 中选择日期(bond-no) where date(bond-no) <= Today

这工作得很好,但我需要通过 sql 获取网页的此信息并得到一个错误,甚至将字段分解为子字符串并使日期备份似乎不起作用

SELECT date(""bond-no"") FROM accadd WHERE date(""bond-no"") <= Date()

已经尝试了上述的变化,这也是......

DATE(SUBSTRING(""bond-no"",4,2),SUBSTRING(""bond-no"",1,2),SUBSTRING(""bond-no"",7,4))

这应该只返回比今天更早的日期,但只是得到旧的语法错误消息,所以我在某处遗漏了一些东西

[DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE] SQL 语句中的语法错误,位于“) FROM accadd WHERE” (10713)

标签: openedgeprogress-4glprogress-db

解决方案


在日期时间(无 -tz)字段上使用 JDBC 的 PDSOE 中使用 SQL 编辑器:

SELECT "bond-no" FROM pub.accadd WHERE "bond-no" <= CURDATE()

要使用静态日期:

SELECT "bond-no" FROM pub.accadd WHERE "bond-no" <= TO_DATE('5/31/2019')

或者:

SELECT "bond-no" FROM pub.accadd WHERE "bond-no" <= { d'5/31/2019' }

推荐阅读