67

OracleDBにいくつかの挿入を実行する必要があります。私は次の形式でいくつかの日付を持っています

'23.12.2011 13:01:001'

私が書いたドキュメントに従って、次のようにto_dateを挿入します。

to_date('23.12.2011 13:01:01', 'DD.MM.YYYY HH24:MI:SS')

これは正しく機能します。今、私はフォーマットでミリ秒の日付を持っています

'23.12.2011 13:01:001'

私は次のことを試しました:

to_date('23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3')

これは正しくありません(エラー01821を配信します。00000-「日付形式が認識されません」)。

このフォーマットにミリ秒単位で使用する「文字列」はどれですか?

前もって感謝します!

4

5 に答える 5

108

OracleDATEは、1秒よりも正確に時間を格納しません。DATEミリ秒の精度のデータを列に格納することはできません。

DATE2つのオプションは、ミリ秒の文字列を切り捨ててから、に変換することです。

to_date( substr('23.12.2011 13:01:001', 1, 19), 'DD.MM.YYYY HH24:MI:SS' )

TIMESTAMPまたは、文字列をミリ秒の精度をサポートするに変換します

to_timestamp( '23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3' )
于 2012-02-07T16:46:10.450 に答える
14

TO_DATEは、ミリ秒をサポートしないDATEデータ型への変換をサポートします。Oracleでミリ秒のサポートが必要な場合は、TIMESTAMPデータ型とTO_TIMESTAMP関数を確認する必要があります。

お役に立てば幸いです。

于 2012-02-07T16:46:36.720 に答える
8

この形式SS.FFをミリ秒単位で試すことができます。

to_timestamp(table_1.date_col、'DD-Mon-RR HH24:MI:SS.FF')

詳細については、
https ://docs.oracle.com/cd/B19306_01/server.102/b14200/functions193.htmをご覧ください。

于 2017-04-25T09:15:34.583 に答える
7

3桁のミリ秒の場合:

TO_CHAR(LN_AUTOD_UWRG_DTTM,'MM/DD/YYYY HH24:MI:SS.FF3')

6桁のミリ秒の場合:

TO_CHAR(LN_AUTOD_UWRG_DTTM,'MM/DD/YYYY HH24:MI:SS.FF'),
于 2018-11-18T21:01:04.540 に答える
-5

日付クラスをタイムスタンプに変更する必要があります。

String s=df.format(c.getTime());
java.util.Date parsedUtilDate = df.parse(s);  
java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedUtilDate.getTime());
于 2016-02-24T08:32:55.077 に答える