2016-12-22 21 views
-3

22122016、22/12/2016のような文字をフォーマットしようとしています。ORA-01861:リテラルがフォーマット文字列と一致しません

私が使用してきました:

SELECT TO_DATE('22122016','NLS_DATE_FORMAT = DD/MM/YYYY') FROM DUAL; 

をしかし、私は、日付形式が認識されません取得しています、と私はしたいフォーマットにNLS_DATE_FORMATをsettigの権利を持っていません。

to_char(to_date(22122016),'DD/MM/YYYY') 

しかし、私は、ORA-01861を取得:

私も試してみましたリテラルがTO_DATEでの第2パラメータにフォーマット文字列

+1

は '' TO_DATE() '関数でNLS_DATE_FORMAT ='を指定しないでください。 'TO_DATE( '22122016'、 'DD/MM/YYYY') ' –

+1

' 22122016 'という文字列があり、これを'22/12/2016'という文字列に変換しますか?次に、文字列関数を使用します。または、文字列をdatetimeに変換しますか?それとも、単にあなたのクエリで使用したい固定日付ですか? –

+1

[ORA-01861:リテラルがフォーマット文字列と一致しません]の重複している可能性があります(http://stackoverflow.com/questions/1387917/ora-01861-literal-does-not-match-format-string) – Aleksej

答えて

4

と一致していない、あなたはそう最初のパラメータとして渡されたデータのフォーマットを指定する必要があります試してみてください:

SELECT TO_DATE('22122016','DDMMYYYY') FROM DUAL; 

Hereあなたが許可されている形式の記述とのhere一部documentaionを見つけるだろうto_date機能。

1

あなたが望むすべては日付リテラルの場合、これはANSI/ISOの方法です -

select date '2016-12-22' from dual 
関連する問題