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
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