Welcher Datentyp wird zum Speichern von DateTime in Oracle 10g verwendet?

8

Welcher Datentyp wird zum Speichern der Datumszeit (nicht nur Datum, sondern auch Uhrzeit) in der Oracle 10g-Datenbank verwendet? Ich habe gelesen, wo das (möglicherweise irrtümlich) " der Datentyp Datum in Oracle 10g kann Datum Zeit speichern " aber die Sache scheint nicht zu passieren, wenn ich es versuche.

  

Der Datentyp DATE ist ein Datetime-Datentyp. Es speichert ein Datum und eine Uhrzeit.   Der Datumsteil basiert auf der Anzahl der Tage seit dem 1. Januar 4712   BC. Der Zeitabschnitt basiert auf der Anzahl der Sekunden seit   Mitternacht. Der Link

Ich habe es über Java als Front-End und direkt auf dem Oracle-Terminal mit dem folgenden SQL versucht.

%Vor%

Es funktioniert, aber (in beiden Fällen) ignoriert Oracle einfach den Zeitabschnitt und fügt nur die in SQL angegebenen Daten ohne Fehler ein?

Welcher Datentyp wird zum Speichern der Datumszeit in Oracle 10g verwendet? Ist es TimeStamp ?

    
Tiny 09.08.2012, 01:59
quelle

2 Antworten

10

A DATE in Oracle hat immer eine Tageskomponente und eine Zeitkomponente. Angenommen, die letzten beiden Spalten in der Tabelle DISCOUNT werden als DATE deklariert, ist es sehr unwahrscheinlich, dass Oracle die Zeitkomponente ignoriert.

Was lässt Sie glauben, dass die Zeitkomponente ignoriert wird? Meine Vermutung ist, dass Sie die Daten überprüfen, indem Sie eine Abfrage wie

ausführen %Vor%

aus SQL * Plus, SQL Developer, TOAD oder einer anderen GUI. Wenn Sie dies tun, hat das angezeigte Datum standardmäßig nur eine Tageskomponente und keine Zeitkomponente. Das bedeutet nicht, dass die Zeitkomponente verworfen wird. Stattdessen ist es das Ergebnis eines Standard- NLS_DATE_FORMAT , das die Zeitkomponente nicht anzeigt. Sie können erzwingen, dass die Zeitkomponente angezeigt wird, indem Sie eine explizite TO_CHAR in Ihrer Abfrage ausführen (beachten Sie, dass ich die Namen Ihrer Spalten rate)

%Vor%

Oder indem Sie Ihren Standard NLS_DATE_FORMAT

ändern %Vor%     
Justin Cave 09.08.2012, 02:24
quelle
4

Oracle DATE enthält auch die Zeit. Von den Dokumenten :

  

Überblick über den DATE-Datentyp

     

Der Datentyp DATE speichert Zeitpunktwerte (Datum und Uhrzeit) in a   Tabelle. Der Datentyp DATE speichert das Jahr (einschließlich des Jahrhunderts), die   Monat, der Tag, die Stunden, die Minuten und die Sekunden (nach   Mitternacht).

Es kann das von Ihnen verwendete Tool (SQL Developer, SQL * Plus) sein, das Sie betrügt. Probieren Sie

aus %Vor%

Beachten Sie auch, dass der Datums-Datentyp nur bis zu den Sekunden gespeichert wird. TIMESTAMP oder TIMESTAMP WITH TIME ZONE sind genauer.

    
Nivas 09.08.2012 02:25
quelle

Tags und Links