Frage

Ich habe die SO Webseite surften dieses Denken ist ziemlich offensichtlich, aber leider habe ich nicht gefunden ein noch. Grundsätzlich ist die Einrichtung ist wie folgt:

Ich habe eine Zeichenfolge in einer Tabelle wie folgt:

  

2010.06.22 00.00.00

Ich habe eine Auswahl darauf:

SELECT To_Date(item, 'MM/DD/YYYY HH24:MI:SS') from that_table

, so dass effektiv ich tue

SELECT To_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS') from that_table

Meine Datenbank liefert:

  

22.06.2010 00.00.00

Jetzt weiß ich, ich kann ein

tun
to_char(to_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')

aber ich brauche die wählen Sie ein Datumsformat (MM/DD/YYYY HH24:MI:SS) zurückzukehren, kein String. Wie kann ich das tun?

Edit: Die reale Produktion:

  

22.06.2010 00.00.00

Gewünschte Ausgabe (in Datumsformat):

  

2010.06.22 00.00.00

War es hilfreich?

Lösung

ein Datum ist ein Zeitpunkt, hat es kein Format (wie Zahlen: sie haben nicht-Format). Wenn Sie das Datum, offensichtlich hat es ein Format zu erhalten. Wenn Sie nicht ausdrücklich geben Oracle ein Format, wird das Standardformat für die Sitzung verwendet werden (Session-Parameter NLS_DATE_FORMAT)

In der Folge: Verwenden Sie den DATE Datentyp für Datum arithmetics und -Speicherung (kein Format). Verwenden Sie die to_char Funktion oder etwas Gleichwertiges, wenn Sie das Datum angezeigt werden müssen (in einem Bericht oder in der GUI).

Andere Tipps

A DATE hat kein Format, wird es nur dann, wenn auf eine Zeichenkette für die Anzeige umgewandelt formatiert. Wenn Sie SQL Plus verwenden, dann, wenn Sie eine DATE-Spalte angezeigt werden (ohne TO_CHAR mit explizit formatieren), SQL Plus selbst führt eine TO_CHAR Umwandlung der NLS_DATE_FORMAT Einstellung mit:

SQL> select sysdate from dual;

SYSDATE
---------
23-JUN-10

SQL> alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2010-06-23 15:17:12

Wenn Sie mit SQL Plus nicht, dann was auch immer Werkzeug, das Sie verwenden, werden ähnlich etwas tun und können eine andere Art und Weise das Datumsformat für die Anzeige angeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top