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.