2016-03-24 7 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' 
); 

Datum wird in DD/MM/YYYY Format kommt aber in Abfrage als MM/DD/YYYY erklärt. Wie man dieses Ding in der Frage ausdrücklich behandelt, können wir das Format oder das Datum in der obigen Frage nicht direkt ändern. Gibt es eine Funktion, die in Oracle verfügbar ist, um diese Art von Szenarien zu behandeln?Benötigen QUERY für DATE-Spalte Werte in Oracle 11G INSERT

+1

welche Spalte reden Sie? Und was ist der Datentyp dieser Spalte? – Boneist

+1

Sie können den angegebenen Zeichenfolgenwert nicht ändern, und Sie können die Formatmaske in der Anweisung nicht ändern? "Ja wirklich?" Wenn ja, gibt es nichts, was Sie tun können. Übrigens, warum hat der zweite Wert nicht entweder to_date oder to_char (abhängig vom Spaltendatentyp), und warum erwartet die Formatmaske für den vierten Wert, dass eine Zeit geliefert wird? –

+1

Sie zeigen eine Abfrage ohne Variablen an. Aber Sie sagen "Datum kommt im Format DD/MM/YYYY". Also wird diese Abfrage irgendwie mit den Datumsfolgen erzeugt? Wenn ja, wo und mit welcher Programmiersprache? –

Antwort

0

tauschen einfach die Formatmaske um:

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' 
);