1

sysdate を次の形式で表示することはできますか?

Wed Oct 16 15:04:44 MDT 2013

これは UNIX の日付形式から派生したものです。

echo `date`

編集: 最新バージョンにはタイムゾーン情報がありません。また、これが最もエレガントなソリューションであるかどうかはわかりません。

SELECT TO_CHAR (sysdate, 'DY') || ' ' || to_char(sysdate, 'MON DD') || ' ' ||     to_char(sysdate, 'HH24:MM:SS' ) || ' ' || to_char(sysdate, 'YYYY' )  
FROM DUAL ; 
4

1 に答える 1

3

sysdatedateタイムゾーンに関する情報を含まないデータ型の値を返します。タイムゾーン地域の短縮バージョンを表示できるようにするには、タイム ゾーン データ型でタイムスタンプの値を操作しTZD、日時形式マスクで形式要素を使用する必要があります。

select to_char( cast(sysdate as timestamp with local time zone)
              , 'Dy Mon dd hh24:mi:ss TZD yyyy') as res
 from dual

結果:

RES                           
-------------------------------
Thu Oct 17 02:14:00 PDT 2013   

編集

Wed Oct 16:12:0 2013 は私が得たものです

セッションの正確なタイム ゾーン地域を明示的に指定してみてください。1 つのオフセットに複数のタイム ゾーン地域が関連付けられている可能性があり、オラクルは 1 つを選択できず、null を返すためです。したがって、クエリを実行する前にalter session set time_zone='<<specify_exact_time_zone_region>>'. 例えば:

SQL> alter session set time_zone='Canada/Mountain';

Session altered.

SQL> select to_char( cast(sysdate as timestamp with local time zone)
  2                    , 'Dy Mon dd hh24:mi:ss TZD yyyy') as res
  3       from dual;

RES                                                                             
-------------------------------                                                 
Thu Oct 17 02:51:14 MDT 2013    
于 2013-10-16T22:11:33.967 に答える