如何设置Firebird使用的服务器日期

问题描述 投票:0回答:1

我需要解决当 Firebird 服务器日期与运行应用程序的本地 Windows 桌面的日期/时间设置不同时发生的问题。

在我的开发机器上,Firebird 2.5 作为 Windows 服务运行。有什么方法可以将Firebird日期设置为与系统日期不同吗?

预期结果将是

SELECT CURRENT_DATE from rdb$database
,指示与 Windows 系统托盘中可见的日期不同的日期。

firebird firebird2.5
1个回答
1
投票

不,这在 Firebird 2.5 中是不可能的。 Firebird 始终使用系统时间,并且在 Firebird 3.0 及更早版本中,将始终使用系统时区中的时间。

在 Firebird 4.0 及更高版本中,您可以使用 firebird.conf 中的设置

DefaultTimeZone
配置服务器附件的默认会话时区。客户端可以在他们正在使用的 fbclient 的 firebird.conf 中的
DefaultTimeZone
中指定会话时区,或者使用
isc_dp_session_time_zone
连接属性为每个连接配置它,或者使用
SET TIME ZONE
来更改某个连接的时区。即时连接。

在 Firebird 4.0 中,

CURRENT_DATE
值将报告会话时区中的日期(不一定与服务器的时区匹配),并且
CURRENT_TIMESTAMP
现在是
TIMESTAMP WITH TIME ZONE
,报告时间和日期, timezone 为会话时区。无时区的替代方案称为
LOCALTIMESTAMP
,它还将报告会话时区中的时间和日期(但不报告时区)。

也就是说,即使在 Firebird 4.0 及更高版本中,时间和日期仍将与服务器时间绑定,仅可能在不同时区(例如客户端使用的时区)获得相同的时刻。

© www.soinside.com 2019 - 2024. All rights reserved.