gpt4 book ai didi

sql - 自夏令时开始以来,Coldfusion、SQL 和 Ingres 的数据不正确

转载 作者:行者123 更新时间:2023-12-01 02:31:00 25 4
gpt4 key购买 nike

自从大约两周前在这里开始夏令时以来,我们注意到在我们的新 ColdFusion 站点上以下列方式限制日期的任何查询都返回了不正确的数据(其中 StartDate 的格式为 dd-mmm-yyyy)。

select ...
from ...
where ...
and o.booking_date >= date('#StartDate#')
and o.booking_date < date('#StartDate#') + date('1 day')

我们发现,如果 StartDate 更改如下,则返回正确的数据:
and booking_date >= '#DateFormat(DateAdd("d",-1,StartDate), "dd-mmm-yyyy")# 13:00'
and booking_date < '#DateFormat(StartDate, "dd-mmm-yyyy")# 13:00'

我们的 CF 服务器上的时间是正确的,并且设置为 UTC+10:00,并启用了夏令时的自动调整。 Ingres II Visual Manager (II_TIMEZONE_NAME) 中的时间设置设置为 AUSTRALIA-VICTORIA。

我们使用 ColdFusion 10 通过 JDBC 连接到 Ingres 数据库。我们使用 ODBC 连接到 Ingres 数据库的旧 ColdFusion 4.5 服务器不会遇到这个问题,所以我认为我们遇到的问题一定与 ColdFusion 10 或我们现在使用的 JDBC 连接有关。

关于为什么会发生这种情况的任何想法?为什么在执行上述第一个示例中所示的操作时需要指定纯 UTC 日期/时间(即没有时间调整)?

谢谢。

最佳答案

假设您使用的是最新版本的 Ingres,9.x 及更高版本,您可能必须将时区指定为连接属性/属性。例如,您可以设置连接 URL 属性 TZAUSTRALIA-VICTORIA , IE。

jdbc:ingres://..../mydb;TZ=AUSTRALIA-VICTORIA

如果 Coldfusion 支持 JDBC 属性,则属性名称为 timezone , TZ/II_TIMEZONE_NAME 的值相同。

虽然 ODBC 和 JDBC 最终都通过相同的接口(interface)连接到 Ingres,但 JDBC 不知道服务器环境,因此不会观察到 II_TIMEZONE_NAME。

关于sql - 自夏令时开始以来,Coldfusion、SQL 和 Ingres 的数据不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12947653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com