2016-03-24 6 views
-1
INSERT 
INTO TABLE_NAME 
    (
    SEQ_ID, 
    FIRST_ENTRY_DATE, 
    UPDATE_DATE, 
    TRIGGER_DATE, 
    EMPLOYEE_NAME 
) 
    VALUES 
    (
    'I001247476', 
    NVL('27/12/2014',SYSDATE), 
    SYSDATE, 
    TO_DATE('26/10/2014', 'MM/DD/YYYY HH24:MI:SS'), 
    'JHON' 
); 

日付はMM/DD/YYYYと入力されたクエリではDD/MM/YYYYです。 クエリでこのことを明示的に処理するには、上記のクエリで形式や日付を直接変更することはできません。 この種のシナリオを処理するためにOracleで使用できる関数はありますか?DATE列のINSERT QUERYが必要です。Oracle 11Gの値

+1

あなたが話しているどの列?そして、その列のデータ型は何ですか? – Boneist

+1

指定された文字列値を変更することはできません。また、この文で書式マスクを変更することはできませんか?本当に?もしそうなら、あなたができることは何もありません。ちなみに、2番目の値にto_dateまたはto_char(列のデータ型によって異なる)のいずれもないのはなぜですか?また、4番目の値の書式マスクには時間が必要ですか? –

+1

変数を指定せずにクエリを表示しています。しかし、あなたは、 "日付はDD/MM/YYYY形式になっています"と言います。だから、このクエリは何らかの形で生成された日付文字列で生成されますか?もしそうなら、どのようなプログラミング言語で? –

答えて

0

ちょうど周りの書式マスクを入れ替える:

INSERT INTO TABLE_NAME (
    SEQ_ID, 
    FIRST_ENTRY_DATE, 
    UPDATE_DATE, 
    TRIGGER_DATE, 
    EMPLOYEE_NAME 
) VALUES (
    'I001247476', 
    NVL(TO_DATE(:first_date, 'DD/MM/YYYY'), SYSDATE), 
    SYSDATE, 
    TO_DATE(:trigger_date, 'DD/MM/YYYY'), 
    'JHON' 
);