1

こんにちは全能のスタックオーバーフロー!

私は Oracle の SQL にあまり詳しくありませんが、日付/時刻の値を取得して、別のアプリケーションの特定の形式に一致する文字列に変換する必要があります。似たようなシナリオをたくさん見つけましたが、いくつかの Oracle のドキュメントと混合したシナリオでは、まだ必要なものを得ることができませんでした。

入力形式は次のとおりです: 8/6/2014 3:05:21 PM

他のアプリケーションに入力する必要がある形式は次のとおりです: YYYYMMDDhhmmssuu

uu はマイクロ秒です(Oracleでは小数秒だと思います)。

私がうまくいくと思ったのは次のとおりです。

to_date(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF') 

入力形式が出力形式と一致する場合にのみ機能すると思います。

ご支援いただければ幸いです。

4

4 に答える 4

3

DATE 型から出力形式に変換する場合は、次のTO_CHAR関数を使用します。

TO_CHAR(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF')

VARCHAR2 型から変換する場合は、両方の関数を使用します。

TO_CHAR(TO_DATE(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT, 'MM/DD/YYYY HH:MI:SS'),'YYYYMMDDHH24MISSFF')

TO_DATE- VARCHAR2 型 (入力形式) から DATE 型に変換します。TO_CHAR・DATE型からVARCHAR2型へ(出力形式)

于 2014-08-21T20:09:49.647 に答える
0

あなたのフォーマットは文字列変数を探しているので、to_dateを取るかどうかはわかりません.

私のアドバイスは、 to_char() と to_date() 関数の両方を組み合わせて実験することです

to_char(to_date(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'DD/MM/YYYY HH:MM:SS),'YYYYMMDDHH24MISSFF')

また

to_date(to_char(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF'),''DD/MM/YYYY HH:MM:SS')

私が試してみたい機能です。Oracleは日付/文字列の入力について非常にうるさい場合があります。私もOracleに比較的慣れていないため、時間/日付はしばしばイライラします

于 2014-08-21T20:13:13.973 に答える
0

デュアルから to_char(systimestamp,'yyyymmddhh24missFF') を選択します。

于 2014-08-21T20:08:00.233 に答える
0

必要な Oracle 関数は TO_CHAR です。

to_char(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF')

于 2014-08-21T20:11:48.520 に答える