我在 oracle 12c 上有 table_name,其中 column_name1 的数据类型为“TIMESTAMP(6) WITH TIME ZONE”。我正在使用 SQL 开发人员。
当我使用 SQL Developer 从此 column_name1 中选择任何内容时,我看到的日期如下:19-SEP-17 03.19.55.000000000 PM +00:00
UTC 格式。
如果我在我的 SQL 中使用相同的格式并在 where 子句中将其作为字符串提供,则它可以正常工作。例子:
select column_name1 from table_name where column_name1 = '19-SEP-17 03.19.55.000000000 PM +00:00';
但我知道在这种情况下建议将字符串转换为日期。因此,当我尝试使用 TO_TIMESTAMP 执行此操作时,我找不到要添加到 SQL 中的正确格式。
我尝试过的是:
select column_name1 from table_name where column_name1 = TO_TIMESTAMP('19-SEP-17 03.19.55.000000000 PM +00:00', 'DD-MON-YYYY HH:MI:SS.FF A.M. TZH:TZM');
即使 AM/PM 已经存在,我仍然会收到错误消息:
AM/A.M. or PM/P.M. required
我也尝试添加 'nls_date_language=american' 但仍然得到相同的错误。
我在这里想念什么?如何更改 TO_TIMESTAMP 格式以便将此字符串转换为 TIMESTAMP?