Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So fügen Sie das aktuelle Datum in ein DATE-Feld im Format TT/MM/JJJJ in Oracle ein

DATE ist ein eingebauter Typ in Oracle, der fest dargestellt wird und Sie keine Kontrolle darüber haben.

Also:

Ich möchte, dass es als 01.08.2011 00:00:00 eingefügt wird.

Das obige ist unsinnig. Sie fügen keinen String ein, Sie fügen ein Datum ein.

Das Format ist nur nützlich, wenn Sie möchten:

  • Um einen String mit TO_DATE in eine interne Darstellung des Datums umzuwandeln (Formatmaske:wie man den String parst);
  • um eine interne Darstellung des Datums mit TO_CHAR in einen String umzuwandeln (Formatmaske:wie das Datum gerendert wird).

Im Grunde genommen nehmen Sie in Ihrem Beispiel ein DATE, konvertieren es in einen STRING mit einem bestimmten Format und konvertieren es mit demselben Format zurück in DATE. Dies ist ein no-op.

Nun, was Ihr Client anzeigt:Dies liegt daran, dass Ihr Oracle-Client DATE-Felder nicht direkt anzeigt und die NLS-Schicht jedes ausgewählte DATE-Feld konvertiert. Es hängt also standardmäßig von Ihrem Gebietsschema ab.

Was Sie wollen, ist SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual; die explizit die Konvertierung durchführt und einen String zurückgibt.

Und wenn Sie ein Datum in eine Datenbank einfügen möchten, können Sie TO_DATE verwenden oder Datumsliterale.