【发布时间】:2018-07-19 07:47:27
【问题描述】:
Oracle 中的Timestamp with Time Zone 数据类型有一个奇怪的特性,当我们选择时区时,它会保留插入时区的格式而没有任何格式;
-
与
TZRUPDATE X SET COLUMN_A = TO_TIMESTAMP_TZ('19-JUL-18 01.53.16.381566000 PM UTC', 'DD-MON-RR HH.MI.SSXFF AM TZR') ...如果我直接选择此列;
> SELECT COLUMN_A WHERE ... 19-JUL-18 01.53.16.381566000 PM UTC -
与
TZH:TZMUPDATE X SET COLUMN_A = TO_TIMESTAMP_TZ('19-JUL-18 01.53.16.381566000 PM +00:00', 'DD-MON-RR HH.MI.SSXFF AM TZH:TZM') ...如果我直接选择此列;
> SELECT COLUMN_A WHERE ... 19-JUL-18 01.53.16.381566000 PM +00:00
此功能背后的原因是什么,有没有办法控制这种方式,例如,我可以将所有这些值设置为 TZH:TZM 格式。我不是在谈论特定于会话的NLS_TIMESTAMP_TZ_FORMAT,尽管它对于SELECT 案例非常有用
【问题讨论】:
-
我认为默认显示格式取决于您用于检索数据的工具。是 SQL*Plus 还是 Toad 还是什么?
-
@Rusty 它是SQL Developer,但我认为您误读了问题,如上所述,生成的格式仅取决于更新中的格式,在同一个工具中,我们得到两个不同的原始结果
SELECT
标签: sql oracle formatting timestamp-with-timezone