sql >> Database >  >> RDS >> Oracle

Hoe de Meridiem Indicator (AM/PM) toe te voegen aan een tijdwaarde in Oracle

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.

  1. Django oracle db-instellingen

  2. PostgreSQL:tijd voor het maken van tabellen

  3. Min vs Behalve Verschil in ORACLE/SQL Server

  4. MySQL varchar-indexlengte