sql >> Databáze >  >> RDS >> Oracle

Jak přidat indikátor Meridiem (AM/PM) k časové hodnotě v Oracle

Při použití TO_CHAR() funkce pro formátování hodnoty data a času v databázi Oracle, můžete přidat indikátor meridiem (AM/PM) jednoduchým přidáním buď AM nebo PM na váš model formátu.

Oracle poté zobrazí příslušný indikátor meridiem v závislosti na tom, zda je hodnota času AM nebo PM.

Můžete jej zadat jakýmikoli velkými nebo malými písmeny, s tečkami nebo bez nich (např. AM , A.M. am , a.m , atd). Oracle poté zobrazí indikátor meridiem, jak je specifikováno.

Příklad

Zde je příklad k demonstraci:

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

Výsledek:

08:30:45 AM

V tomto případě je čas ante meridiem, takže výsledek má AM připojeno.

AM vs PM

Dobré na tom je, že Oracle zjistí, zda je dopoledne nebo odpoledne, a zobrazí příslušný indikátor poledníku.

Takže když změním čas na hodnotu PM, stane se toto:

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

Výsledek:

06:30:45 PM

Indikátor meridiem je nyní PM, i když můj formátovací řetězec je AM . Oracle byl dost chytrý, aby věděl, že čas je po meridiem.

Velká a malá písmena

Změnou velikosti písmen prvku format se změní velikost písmen ve výsledku:

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;

Výsledek:

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

Tečky vs žádné tečky

Pokud chcete, můžete vložit tečky:

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;

Výsledek:

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

Všimněte si však, že to ovlivnilo smíšený ukazatel meridiem velkých a malých písmen.

Dnešní datum a čas

Zde předávám SYSDATE pro získání aktuálního data/času:

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

Výsledek:

07:55:57 P.M.

  1. Auto Increment Column – Sekvence jako výchozí hodnota v Oracle

  2. Přechod z MySQL 5.7 na MySQL 8.0 – Co byste měli vědět

  3. Jak načíst všechny řádky v mé DB?

  4. Relační algebra