2017-01-31 12 views
0

Screenshot of query executed '土曜日10月29日10:47:50 CDT 2016'の日付文字列は、Oracleクエリで日付/タイムスタンプ形式に変換する必要があります。私はそれから日付と時刻だけを抽出する必要があります。私はto_date()に使用しようとしましたが、動作しませんでした。誰か助けてもらえますか?oracleで日付文字列を日付に変換する方法

エラー: ORA-01841:(フル)年は-4713と+9999の間で、そして0 01841. 00000あってはならない - 「(フル)年は-4713と+9999の間で、およびあってはなりません0" *原因:不正な年は *アクション入力された:指定された範囲で入力年を

+0

使用した 'to_date()'構文を投稿してください。どのフォーマットを使用しましたか? http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34924 –

+1

どのように 'to_date'関数を使用したのでしょうか? – krokodilko

+0

@Wernfried解決策があれば教えてください。私はオラクルを使ったことがないので、私は自分の答えをテストすることができませんでした。 –

答えて

1

この方法を試してください。

SELECT TO_DATE(
    REGEXP_REPLACE('Sat Oct 29 10:47:50 CDT 2016', '^\w+ (\w+ \d+ \d{2}:\d{2}:\d{2}).+(\d{4})', '\1 \2'), 
     'Mon DD HH24:MI:SS YYYY') 
FROM DUAL 

データ型DATETIMESTAMPは、あなたがする必要がある、任意のタイムゾーン情報をサポートしていません。変換を行う前にこの部分を削除してください。

+0

これは、そこから日付だけを抽出します。DBカラムには、 "** Sat Oct 29 10:47:50 CDT 2016 **"という日付が文字列形式で格納されています。文字列の列を照会して15分/ 30分の間隔を設定します。 –

+1

いいえ、 'HH24:MI:SS'の時刻も読み込みます。現在のセッションの 'NLS_DATE_FORMAT'設定を確認してください。 –

+0

えええええええええええええええええええええええええ:これは時間を読みますが、なんとなく出力は時間を返しませんでした。 NLS_DATE_FORMATは "DD-MON-RR"で、これがクエリの出力に与える影響を認識していませんか? query screenshot [https://i.stack.imgur.com/YZOz2.png] –

関連する問題