2010-08-04 2 views
6

Also ich muss einige Daten auf einer Oracle-Datenbank aktualisieren, das Feld ist ein Datetime, aber ich will nur das Datum aktualisiert und lassen Sie die Zeit so wie es ist ... Dort Abfrage geht so:Update nur Datum DateTime Feld auf Pl/SQL

update table 
    SET field = to_date('07312010','MMDDYY'); 

aber es ist die Stunden, Minuten und Sekunden aus dem Feld überschreibt, mag ich das Datum aktualisieren, aber ich mag die Stunde gleich, alle Gedanken zu überlassen?

Antwort

19

könnten Sie verwenden:

UPDATE TABLE 
    SET field = TO_DATE('07312010' || ' ' || TO_CHAR(field, 'HH24:MI:SS'), 
         'MMDDYY HH24:MI:SS'); 
+0

Vielen Dank, das hat perfekt funktioniert! :) – Gotjosh

-1

In Oracle der Rohling ein kleineres Problem ist, ich modifiziert es ein wenig.

/* Formatted on 4/26/2017 5:56:31 AM (QP5 v5.115.810.9015) */ 

UPDATE telco_attendee 
    SET startdate = 
TO_DATE( ( TO_CHAR(startdate, 'DD/MM/YYYY') 
|| 
TO_CHAR(starttime, 'HH24:MI:SS') ) ,'DD/MM/YYYYHH24:MI:SS') 
+0

Die Frage ist speziell abount *** datetime *** Feld; Es gibt kein * Zeit * Feld wie 'starttime' in deiner * Antwort * ... –

Verwandte Themen