2013-02-20 11 views
7

ich verpflichtet bin, das folgende als eine Übung zu tun, und ich kämpfen, um eine Lösung zu finden:konvertieren 24-Stunden-Zeit bis 12 Stunden und AM/PM-Anzeige Oracle SQL

eine SELECT-Anweisung schreiben, die diese Spalten zurückgibt aus die Rechnungen Tabelle:

die invoice_date Spalte

Verwenden Sie die Funktion TO_CHAR die invoice_date Spalte mit dem vollständigen Datum und Uhrzeit mit einem vierstelligen Jahr auf einer 24-Stunden-Uhr

Verwenden Sie die TO_CHAR Funktion zurückzukehren t zurückgeben Die Spalte invoice_date enthält das vollständige Datum und die Uhrzeit einschließlich eines vierstelligen Jahres unter eine 12-Stunden-Uhr mit einem am/pm-Indikator.

die CAST-Funktion Verwenden Sie die invoice_date Spalte als VARCHAR2 (10)

Alles, was ich bekommen kann zurückzukehren:

select invoice_date, to_char(invoice_date, 'DD-MM-YYYY HH:MM:SS') "Date 24Hr" 
    from invoices 

Welche meine ersten beiden Spalten bekommt, aber ich nicht herausfinden können, Möglichkeit, die dritte Spalte auszuwählen. Jede Hilfe wäre großartig, danke. (Und ja, das ist von meinem Schulbuch)

+0

Mögliche Duplikat [Oracle _date mit Uhr/Uhr bis \] (http://stackoverflow.com/questions/27269903/oracle-to-date-with-pmam) –

Antwort

22

Für die 24-Stunden-Zeit müssen Sie HH24 anstelle von HH verwenden.

Für die 12-Stunden-Zeit wird der AM/PM-Indikator als A.M. geschrieben (wenn Sie Perioden im Ergebnis wünschen) oder AM (wenn nicht). Zum Beispiel:

SELECT invoice_date, 
     TO_CHAR(invoice_date, 'DD-MM-YYYY HH24:MI:SS') "Date 24Hr", 
     TO_CHAR(invoice_date, 'DD-MM-YYYY HH:MI:SS AM') "Date 12Hr" 
    FROM invoices 
; 

Weitere Informationen zu den Formatmodelle, die Sie mit TO_CHAR auf ein Datum verwenden können, finden http://docs.oracle.com/cd/E16655_01/server.121/e17750/ch4datetime.htm#NLSPG004.

+0

Danke, das ist, was ich –

+0

wissen musste @Galen_GG: Gern geschehen! – ruakh

+0

@Galen_GG Eigentlich ist es für ein 12-Stunden-Zeitformat normalerweise besser * nicht * eine führende Null in das Format der Ausgabestunde aufzunehmen ('03:50 PM' sieht einfach falsch aus, da die führende Null in den meisten eine 24-Stunden-Uhr bedeutet) Fälle!!). Daher besser zu verwenden: 'TO_CHAR (Rechnungsdatum, 'DD-MM-JJJJ FMHH: MI: SS AM')" Datum 12Hr "' – cartbeforehorse

Verwandte Themen