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

So fügen Sie den Meridiem-Indikator (AM/PM) zu einem Zeitwert in Oracle hinzu

Bei Verwendung von TO_CHAR() -Funktion zum Formatieren eines datetime-Werts in Oracle Database können Sie den Meridiem-Indikator (AM/PM) hinzufügen, indem Sie einfach entweder A.M. hinzufügen oder PM zu Ihrem Formatmodell.

Oracle zeigt dann den entsprechenden Meridiem-Indikator an, je nachdem, ob der Zeitwert AM oder PM ist.

Sie können es in Groß- oder Kleinbuchstaben und mit oder ohne Punkte angeben (z. B. A.M. , A.M. a.m , a.m , etc). Oracle zeigt dann den Meridiem-Indikator wie angegeben an.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT TO_CHAR(timestamp '2030-12-30 08:30:45', 'HH:MI:SS AM') 
FROM DUAL;

Ergebnis:

08:30:45 AM

In diesem Fall ist die Zeit ante meridiem, also hat das Ergebnis A.M. angehängt.

AM vs. PM

Das Gute daran ist, dass Oracle berechnet, ob es morgens oder abends ist, und den entsprechenden Meridiem-Indikator anzeigt.

Folgendes passiert also, wenn ich die Uhrzeit in einen PM-Wert ändere:

SELECT TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS AM') 
FROM DUAL;

Ergebnis:

06:30:45 PM

Der Meridiem-Indikator ist jetzt PM, obwohl mein Format-String A.M. ist . Oracle war schlau genug zu wissen, dass die Zeit nach dem Meridiem gekommen ist.

Großbuchstaben vs. Kleinbuchstaben

Die Änderung der Groß-/Kleinschreibung des format-Elements ändert die Groß-/Kleinschreibung des Ergebnisses:

SELECT 
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS AM') AS "Uppercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS am') AS "Lowercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS Am') AS "Mixed"
FROM DUAL;

Ergebnis:

     Uppercase      Lowercase          Mixed 
______________ ______________ ______________ 
06:30:45 PM    06:30:45 pm    06:30:45 Pm    

Punkte vs. keine Punkte

Sie können Punkte einfügen, wenn Sie möchten:

SELECT 
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS A.M.') AS "Uppercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS a.m.') AS "Lowercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS A.m.') AS "Mixed"
FROM DUAL;

Ergebnis:

       Uppercase        Lowercase            Mixed 
________________ ________________ ________________ 
06:30:45 P.M.    06:30:45 p.m.    06:30:45 P.M.   

Beachten Sie jedoch, dass dies den Meridiem-Indikator für gemischte Groß- und Kleinschreibung beeinflusst hat.

Heutiges Datum und Uhrzeit

Hier übergebe ich SYSDATE um das aktuelle Datum/die aktuelle Uhrzeit zu erhalten:

SELECT 
    TO_CHAR(SYSDATE, 'HH:MI:SS A.M.')
FROM DUAL;

Ergebnis:

07:55:57 P.M.