簡體   English   中英

使用to_char函數在sql中轉換日期

[英]convert date in sql using to_char function

我想將以下日期轉換為此格式(DD-MON-YYYY)。

我嘗試執行以下查詢,但收到錯誤消息“無法識別日期格式”。

select to_char(to_date('Sat Dec 01 00:00:00 IST 2012','EEE Mon dd HH:mm:ss z yyyy'),'DD-MON-YYYY') from dual;

對於除時區以外的所有內容:

'DY MON DD HH24:MI:SS YYYY'

為了支持時區,您需要使用支持時區的轉換函數,例如TO_TIMESTAMP_TZ(),並以Oracle識別的形式將時區名稱作為一個Oracle識別。

select to_char( TO_TIMESTAMP_TZ( 
        REPLACE( 'Sat Dec 01 21:00:00 IST 2012','IST','Asia/Calcutta'),
       'DY MON DD HH24:MI:SS TZR YYYY'),'DD-MON-YYYY') from dual;

時區名稱和縮寫之間的關系對於大多數人是一對多的。

SELECT tzname, tzabbrev FROM v$timezone_names where TZABBREV = 'IST'

以您的示例為例,轉換前在輸出中刪除不需要的某些或所有日期部分可能會更容易。

select to_char( to_date( replace('Sat Dec 01 21:00:00 IST 2012','IST',''),
       'DY MON DD HH24:MI:SS YYYY'),'DD-MON-YYYY') from dual;

暫無
暫無

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

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