sql >> Database teknologi >  >> RDS >> Oracle

Sådan tilføjes Meridiem-indikatoren (AM/PM) til en tidsværdi i Oracle

Når du bruger TO_CHAR() funktion til at formatere en datetime-værdi i Oracle Database, kan du tilføje meridiem-indikatoren (AM/PM) ved blot at tilføje enten AM eller PM til din formatmodel.

Oracle viser derefter den relevante meridiem-indikator, afhængigt af om tidsværdien er AM eller PM.

Du kan angive det med store eller små bogstaver og med eller uden prikker (f.eks. AM , A.M. am , a.m , etc). Oracle vil derefter vise meridiem-indikatoren som angivet.

Eksempel

Her er et eksempel til demonstration:

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

Resultat:

08:30:45 AM

I dette tilfælde er tiden ante meridiem, og resultatet har derfor AM vedlagt.

AM vs PM

Det gode ved det er, at Oracle regner ud, om det er AM eller PM, og viser den gældende meridiem-indikator.

Så her er, hvad der sker, når jeg ændrer tiden til en PM-værdi:

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

Resultat:

06:30:45 PM

Meridiem-indikatoren er nu PM, selvom min formatstreng er AM . Oracle var smart nok til at vide, at tiden er post meridiem.

Store bogstaver vs. små bogstaver

Ændring af store og små bogstaver i formatelementet ændrer størrelsen på resultatet:

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;

Resultat:

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

Prikker vs. Ingen prikker

Du kan inkludere prikker, hvis du foretrækker:

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;

Resultat:

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

Bemærk dog, at dette påvirkede meridiem-indikatoren for blandede tilfælde.

Dagens dato og klokkeslæt

Her sender jeg SYSDATE for at få den aktuelle dato/tid:

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

Resultat:

07:55:57 P.M.

  1. Få top n poster for hver gruppe af grupperede resultater

  2. Gotchas, når du bruger Microsoft Access Runtime

  3. MySQL - Rækker til kolonner

  4. Sådan finder du aktuelle åbne markører i Oracle