gpt4 book ai didi

sql - 使用夏令时计算时间戳

转载 作者:行者123 更新时间:2023-12-04 15:24:32 25 4
gpt4 key购买 nike

中欧夏令时从 3 月的最后一个星期日开始。我们将时钟设置为 02:00 至 03:00。如果我在数据库请求中进行时间戳计算会发生什么 - 比如说 01:59?

UPDATE sessions SET aliveuntil = (CURRENT_TIMESTAMP + INTERVAL '1' MINUTE) WHERE id = ?

我得到的结果是 03:00 还是 02:00?

如果我们将时钟设置在 03:00 到 02:00 之间呢?
SELECT id FROM sessions WHERE aliveuntil < (CURRENT_TIMESTAMP - INTERVAL '1' MINUTE)

时间从 03:00 更改为 02:00 之后... (CURRENT_TIMESTAMP - INTERVAL '1' MINUTE) 会发生什么情况02:00?是 02:59 还是 01:59?

这应该如何处理?最佳实践以及 Oracle Database 11g 11.2.0.2.0 版如何处理(在我的特定情况下)?

最佳答案

如果我正确理解他们的文档,这取决于表/列在数据库中的设置方式。如果列设置为使用 WITH TIME ZONE,则 Oracle 会自动确定正确/相关的值。在上面的示例中,如果列 aliveuntil 具有此设置,那么如果您尝试在 1:59 添加 1 分钟,则时间将更新为 3:00。

这是我在该主题上找到的一篇有用的文章:

http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm

向下滚动到文章底部,您应该会看到您要查找的内容。

这是我发现相关的文章的一部分:

For example, in the Eastern region of the United States, the time changes from 01:59:59 a.m. to 3:00:00 a.m. when Daylight Saving Time goes into effect. The interval between 02:00:00 and 02:59:59 a.m. does not exist. Values in that interval are invalid.

关于sql - 使用夏令时计算时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14157708/

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