簡體   English   中英

如何在Oracle SQL中將PDT轉換為日期時間對象?

[英]How to convert PDT into a date time object in Oracle sql?

如果我的日期采用以下格式: Sep-29-07 13:45:00 PDT

我如何將其轉換為oracle 11g中的Date對象? 我已經試過了:

SELECT TO_DATE(PublishDate, 'MON-DD-YY HH24:MI:SS')
FROM Order;

但我收到一個錯誤消息:

ORA-01830:日期格式圖片在轉換整個輸入字符串之前結束

如果您只有一個時區的日期,則可以使用以下命令忽略時區部分:

select to_date(PublishDate, 'MON-DD-YY HH24:MI:SS "PDT"') 
from Orders;

如果您打算支持多個時區,則將它們與timestamp with time zone格式的timestamp with time zone存儲。 使用正確的時區縮寫(用PST代替to_timestamp_tz 參見this )並轉換字符串,使用to_timestamp_tz

select to_timestamp_tz(PublishDate, 'MON-DD-YY HH24:MI:SS TZR') 
from Orders;

或者,可以將它們轉換為一個本地時區。 看到這個答案

您可以使用以下方法忽略時區:

SELECT TO_DATE(SUBSTR(PublishDate, 1, length(PublishDate) - 4), 'MON-DD-YY HH24:MI:SS')

但是,如果要處理不同的時區,則需要存儲標准格式,例如'America/Los_Angeles'

例如:

SELECT TO_TIMESTAMP_TZ(PublishDate, 'MON-DD-YY HH24:MI:SS TZR')
from (select 'Sep-29-07 13:45:00 America/Los_Angeles' as PublishDate from dual) x;

您可以使用'PDT'對此進行修改,但這本身是不可接受的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM