Bij gebruik van de TO_CHAR()
functie om een datetime-waarde op te maken in Oracle Database, kunt u de meridiem-indicator (AM/PM) toevoegen door simpelweg A.M.
toe te voegen of PM
naar uw formaatmodel.
Oracle geeft vervolgens de juiste meridiem-indicator weer, afhankelijk van of de tijdwaarde AM of PM is.
U kunt het in elke hoofdletter of kleine letter opgeven, en met of zonder punten (bijv. A.M.
, A.M.
a.m
, a.m
, enzovoort). Oracle zal dan de meridiem-indicator weergeven zoals gespecificeerd.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT TO_CHAR(timestamp '2030-12-30 08:30:45', 'HH:MI:SS AM')
FROM DUAL;
Resultaat:
08:30:45 AM
In dit geval is de tijd ante meridiem, en dus heeft het resultaat A.M.
toegevoegd.
AM versus PM
Het goede eraan is dat Oracle uitzoekt of het AM of PM is en de toepasselijke meridiem-indicator weergeeft.
Dus dit is wat er gebeurt als ik de tijd verander in een PM-waarde:
SELECT TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS AM')
FROM DUAL;
Resultaat:
06:30:45 PM
De meridiem-indicator is nu PM, ook al is mijn opmaakstring A.M.
. Oracle was slim genoeg om te weten dat de tijd post meridiem is.
Hoofdletters versus kleine letters
Het wijzigen van de hoofdletters van het formaatelement verandert de hoofdletters van het resultaat:
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;
Resultaat:
Uppercase Lowercase Mixed ______________ ______________ ______________ 06:30:45 PM 06:30:45 pm 06:30:45 Pm
Stippels vs Geen stippen
U kunt desgewenst punten toevoegen:
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;
Resultaat:
Uppercase Lowercase Mixed ________________ ________________ ________________ 06:30:45 P.M. 06:30:45 p.m. 06:30:45 P.M.
Merk echter op dat dit de meridiem-indicator voor gemengde gevallen beïnvloedde.
De datum en tijd van vandaag
Hier geef ik SYSDATE
door om de huidige datum/tijd te krijgen:
SELECT
TO_CHAR(SYSDATE, 'HH:MI:SS A.M.')
FROM DUAL;
Resultaat:
07:55:57 P.M.