问题描述
试图处理时区DST感知日期时间处理,但我无法同时获得安全和方便的处理。
几乎完美的解决方案是带有本地时区的时间戳,除了它使用nls_timestamp_format (而不是使用nls_timestamp_tz_format) 不允许格式化任何时区信息,因此在转换过程中会丢失夏令时信息。
尽管有 _ is _ 时区信息,但它恰好与本地时区对齐 (但它不是 _same_,因为中欧时区是CET或CEST)。
因此,例如带有本地时区的时间戳-> char转换 (无需在每次使用时都明确指定格式字符串)
由于欧洲时区无法区分 “2020-10-25 02:30:00 02:00” 和 “2020-10-25 02:30:00 01:00”,因为两者都将输出 “2020-10-25 02:30:00”。
我错过了一些非常明显的东西吗?
几乎完美的解决方案是带有本地时区的时间戳,除了它使用nls_timestamp_format (而不是使用nls_timestamp_tz_format) 不允许格式化任何时区信息,因此在转换过程中会丢失夏令时信息。
尽管有 _ is _ 时区信息,但它恰好与本地时区对齐 (但它不是 _same_,因为中欧时区是CET或CEST)。
因此,例如带有本地时区的时间戳-> char转换 (无需在每次使用时都明确指定格式字符串)
由于欧洲时区无法区分 “2020-10-25 02:30:00 02:00” 和 “2020-10-25 02:30:00 01:00”,因为两者都将输出 “2020-10-25 02:30:00”。
我错过了一些非常明显的东西吗?
专家解答
我不完全确定你的问题是什么。也许这会有所帮助:
时区 => 的时间戳完全按-is存储值。
带有本地时区 => 的时间戳将值标准化为数据库的时区。返回用户所在时区的数据。
因此,如果00:00 DB时区,则存储在具有LTZ的TS中的值为:
2020-10-25 02:30:00 02:00 => 2020-10-25 00:30:00 UTC
2020-10-25 02:30:00 01:00 => 2020-10-25 01:30:00 UTC
在30午夜UTC,布鲁塞尔仍在实行夏令时 (CEST) => 布鲁塞尔上午2:30
UTC早上30点,夏令时在布鲁塞尔 (CET) 结束 => 布鲁塞尔上午2:30
这就是为什么使用本地时区报告两者的时间相同的原因: 因为它们are同一小时。计算is日光节约意识!
当您指定02:00时,数据库不知道您所在的区域。可能是比利时或南非 (不遵守夏令时)。夏令时的信息不会丢失!
时区 => 的时间戳完全按-is存储值。
带有本地时区 => 的时间戳将值标准化为数据库的时区。返回用户所在时区的数据。
因此,如果00:00 DB时区,则存储在具有LTZ的TS中的值为:
2020-10-25 02:30:00 02:00 => 2020-10-25 00:30:00 UTC
2020-10-25 02:30:00 01:00 => 2020-10-25 01:30:00 UTC
在30午夜UTC,布鲁塞尔仍在实行夏令时 (CEST) => 布鲁塞尔上午2:30
UTC早上30点,夏令时在布鲁塞尔 (CET) 结束 => 布鲁塞尔上午2:30
这就是为什么使用本地时区报告两者的时间相同的原因: 因为它们are同一小时。计算is日光节约意识!
当您指定02:00时,数据库不知道您所在的区域。可能是比利时或南非 (不遵守夏令时)。夏令时的信息不会丢失!
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
582次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
539次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
444次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
434次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
433次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
432次阅读
2025-04-22 00:20:37
Oracle SQL 执行计划分析与优化指南
Digital Observer
432次阅读
2025-04-01 11:08:44
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
410次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
398次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
377次阅读
2025-04-08 23:57:08