Práca s TO_CHAR()
Či už chcete získať aktuálny dátum v dopyte PostgreSQL alebo pracovať s dátumami v tabuľke, je nevyhnutné pochopiť, ako previesť dátum na reťazec. Možno budete chcieť krajší formát dátumu ako výstup alebo extrahovať časť dátumu po jeho konverzii na reťazec. V každom prípade je TO_CHAR() ideálnou funkciou.
Okrem toho TO_CHAR() ponúka množstvo možností formátovania, ktoré môžete použiť. Môžete kombinovať rôzne možnosti, aby ste získali požadovaný výstup.
TO_CHAR() má nasledujúcu syntax:
TO_CHAR(výraz, formát);
Výraz je časová pečiatka, ktorú chcete previesť pomocou určeného formátu.
Nasledujú bežne používané formáty TO_CHAR():
1 rok
YYYY – Zobrazuje rok 4 číslicami.
Y, YYY – Používa čiarku na vyjadrenie štyroch číslic v roku.
YYY – Zobrazuje iba posledné tri číslice v zadanom roku.
YY – Zobrazuje iba posledné dve číslice v zadanom roku.
A - Zobrazuje iba poslednú číslicu v zadanom roku.
2 mesiace
MESIAC – V názve mesiaca sa používajú veľké písmená.
mesiac - V názve mesiaca sa používajú malé písmená.
MOJE - Skratuje mesiac veľkými písmenami.
môj - Mesiac uvádza skratku a veľké písmená.
MM – Zobrazuje iba číslo mesiaca.
3. Deň
DEŇ – Názov dňa veľkými písmenami.
deň - Meno dňa s malými písmenami.
VY - Názov dňa skracuje a začína sa veľkým písmenom.
Tí – Názov dňa skracuje a veľkými písmenami.
ty- Meno dňa skrátené malými písmenami.
4. Čas
HH – Hodina dňa
HH12 – 12-hodinový formát
HH24 – 24-hodinový formát
MOJE - Minúty
SS – sekúnd
Uvedené formáty nie sú jediné formáty TO_CHAR(), ktoré môžete použiť, ale sú to najčastejšie používané. V tomto príspevku uvedieme ich príklad použitia.
Príklad 1: Konverzia dátumu na reťazec
V tomto príklade zadáme cieľový dátum ako náš výraz a určíme, aký formát ho previesť. Nasledujúci výstup ukazuje, ako konvertujeme „2023-11-29“ na čitateľnejší a zrozumiteľnejší reťazec:
Príklad 2: Práca s aktuálnym dátumom
V PostgreSQL vám CURRENT_DATE poskytuje dátum pre daný deň.
Predpokladajme, že ho chceme previesť na reťazec. Ako výraz potrebujeme použiť iba CURRENT_DATE a potom určiť náš formát. Teraz získate aktuálny dátum ako reťazec.
Napriek tomu môžete zmeniť formát na iný, aby ste splnili svoj cieľ. Napríklad, ak chceme zobraziť iba dátum, mesiac a rok, vyladíme náš príkaz takto:
Krása TO_CHAR() spočíva v tom, že môžete kombinovať rôzne formáty, aby ste vytvorili konečný formát, ktorý chcete použiť na rande. Poďme ďalej a pracujme s časovými pečiatkami.
Príklad 3: Práca s časovou pečiatkou
Doteraz sme pracovali len s dátumami. Ak však dátum obsahuje čas, môžete čas extrahovať zadaním jeho ideálneho formátu.
Tu je príklad, kde určíme získať čas v 24-hodinovom formáte z poskytnutej časovej pečiatky, pričom dátum vynecháme:
Pre 12-hodinový formát času používame HH12 namiesto HH24. Pozrite si nasledujúci príklad:
Nakoniec, ak chceme extrahovať dátum a čas z poskytnutej časovej pečiatky, musíme pridať iba ideálny formát, ktorý chceme použiť. Tu špecifikujeme pomocou HH12:MI:SS pre čas a pridáme oddeľovač. Ďalej určíme, že ako dátum sa má použiť „dd, mesiac, yyyy“.
Náš konečný výstup je nasledovný:
Príklad 4: Práca s tabuľkou
Všetky formáty, o ktorých sme hovorili a spomínali, je možné použiť na tabuľku PostgreSQL. V tomto príklade máme tabuľku s názvom „objednávky“, ktorá obsahuje stĺpec „dátum“. Aby sme z neho vybrali prvky a použili TO_CHAR() pre stĺpec „dátum“, vykonáme náš príkaz, ako je znázornené na nasledujúcom obrázku:
Môžete použiť ľubovoľný formát. Tu je rovnaký príkaz, ale s iným formátom dátumu:
Ak chceme v stĺpci dátumu zobraziť iba deň v týždni a mesiac, príkaz vyladíme takto:
Neváhajte špecifikovať akýkoľvek ideálny formát, s ktorým chcete pre váš prípad pracovať.
Záver
TO_CHAR() je užitočná funkcia PostgreSQL, ktorá používateľom umožňuje konvertovať časové pečiatky a ďalšie literály na reťazce. Tento príspevok ukazuje rôzne spôsoby, ako môžete použiť TO_CHAR() pre dátumy. Poskytli sme rôzne príklady, aby sme zaistili rýchle pochopenie obsahu. Dúfajme, že TO_CHAR() vás už nebude trápiť.