Oracle SQL : 如何指定时区区域

Oracle SQL : how to specify Time Zone Region

to_date('30/03/2022', 'DD/MM/YYYY')

带下划线,因为未指定小时数,表示小时数为“00:00” 我想指定这是针对 Europe/Paris 时区区域的。 你能帮我设置一下吗? 谢谢

A DATE 数据类型具有组成部分:年、月、日、小时、分钟和秒。它 ALWAYS 具有这些组件并且 NEVER 存储任何其他内容(例如时区);所以不可能以 DATE 数据类型存储时区。

TIMESTAMP 数据类型具有组成部分:年、月、日、小时、分钟和秒,并且可以选择存储小数秒。

TIMESTAMP WITH TIME ZONE 数据类型具有组成部分:年、月、日、小时、分钟、秒和时区,并且可以选择存储小数秒信息。

因此,如果要存储时区,则应使用 TIMESTAMP WITH TIME ZONE 而不是 DATE

您的代码将是:

TO_TIMESTAMP_TZ('30/03/2022 Europe/Paris', 'DD/MM/YYYY TZR')

或使用时间戳文字:

TIMESTAMP '2022-03-30 00:00:00 Europe/Paris'

或者,如果您想以该格式传递日期并在 two-step 过程中添加时区:

FROM_TZ(TO_TIMESTAMP('30/03/2022', 'DD/MM/YYYY'), 'Europe/Paris')

db<>fiddle here