Genau das ist TO_DATE()
für: Zeitstempel auf Datum umrechnen.
Verwenden Sie einfach TO_DATE(sysdate)
anstelle von TO_CHAR(sysdate, 'YYYY/MM/DD-HH24-MI-SS-SSSSS')
.
SQLFiddle demo
UPDATE:
Per Ihr Update, Ihre cdate
Spalte ist nicht real DATE
oder TIMESTAMP
Typ, aber VARCHAR2
. Es ist keine gute Idee, Zeichenkettentypen zu verwenden, um Daten zu behalten. Es ist sehr unbequem und langsam zu suchen, zu vergleichen und alle anderen Arten von Mathe auf Daten zu tun.
Sie sollten Ihr cdate
VARCHAR2
Feld in echte TIMESTAMP
konvertieren. Vorausgesetzt, es gibt keine anderen Benutzer für dieses Feld mit Ausnahme für den Code, können Sie cdate
konvertieren zu wie folgt:
BEGIN TRANSACTION;
-- add new temp field tdate:
ALTER TABLE mytable ADD tdate TIMESTAMP;
-- save cdate to tdate while converting it:
UPDATE mytable SET tdate = to_date(cdate, 'YYYY-MM-DD HH24:MI:SS');
-- you may want to check contents of tdate before next step!!!
-- drop old field
ALTER TABLE mytable DROP COLUMN cdate;
-- rename tdate to cdate:
ALTER TABLE mytable RENAME COLUMN tdate TO cdate;
COMMIT;
SQLFiddle Demo
SELECT to_date (create_date, 'TT-MM-JJJJ') sollte für Sie arbeiten. Probieren Sie es aus – ankurtr
'FEHLER bei Zeile 1: ORA-01861: Literal stimmt nicht mit Formatzeichenfolge überein ' zeigt auf cdate. – kumarprd
Entschuldigung. Da Sie bereits ein Datum haben, müssen Sie es in char umwandeln. Versuchen Sie also to_char (create_date, 'DD-MM-YYYY'). Es sollte Arbeit für Sie erledigen. – ankurtr