Práce s TO_CHAR()
Ať už chcete získat aktuální datum v dotazu PostgreSQL nebo pracovat s daty ve vaší tabulce, je nezbytné pochopit, jak převést datum na řetězec. Možná budete chtít hezčí formát data jako výstup nebo extrahovat část data po převodu na řetězec. V každém případě je TO_CHAR() ideální funkcí.
Kromě toho TO_CHAR() nabízí spoustu možností formátování, které můžete použít. Můžete kombinovat různé možnosti, abyste získali požadovaný výstup.
TO_CHAR() má následující syntaxi:
TO_CHAR(výraz, formát);
Výraz je časové razítko, které chcete převést pomocí zadaného formátu.
Níže jsou uvedeny běžně používané formáty TO_CHAR():
1 rok
YYYY – Zobrazuje rok ve 4 číslicích.
Y, YYY – K vyjádření čtyř číslic v roce používá čárku.
YYY – Zobrazuje pouze poslední tři číslice zadaného roku.
YY – Zobrazuje pouze poslední dvě číslice zadaného roku.
A - Zobrazuje pouze poslední číslici zadaného roku.
2 měsíce
MĚSÍC - Pro název měsíce používá velká písmena.
Měsíc - Pro název měsíce používá malá písmena.
MŮJ - Zkracuje měsíc velkými písmeny.
Můj - Uvádí zkrácený a velkými písmeny měsíc.
MM – Zobrazuje pouze číslo měsíce.
3. Den
DEN - Název dne velkými písmeny.
den - Název dne malými písmeny.
VY - Název dne zkracuje a začíná velkým písmenem.
Tito – Název dne zkracuje a velkými písmeny.
vy- Malé zkrácené jméno dne.
4. Čas
HH – Hodina dne
HH12 – 12hodinový formát
HH24 – 24hodinový formát
MŮJ - Minut
SS – Sekundy
Uvedené formáty nejsou jediné formáty TO_CHAR(), které můžete použít, ale jsou to ty nejpoužívanější. V tomto příspěvku uvedeme jejich příklad použití.
Příklad 1: Převod data na řetězec
V tomto příkladu zadáme cílové datum jako náš výraz a určíme, jaký formát jej převést. Následující výstup ukazuje, jak převedeme „2023-11-29“ na čitelnější a srozumitelnější řetězec:
Příklad 2: Práce s aktuálním datem
V PostgreSQL vám CURRENT_DATE poskytuje datum pro daný den.
Předpokládejme, že jej chceme převést na řetězec. Potřebujeme pouze použít CURRENT_DATE jako náš výraz a poté určit náš formát. Nyní získáte aktuální datum jako řetězec.
Přesto můžete změnit formát na jiný, abyste splnili svůj cíl. Pokud například chceme zobrazit pouze datum, měsíc a rok, vyladíme náš příkaz následovně:
Krása TO_CHAR() spočívá v tom, že můžete kombinovat různé formáty a vytvořit ten konečný, který chcete použít pro své rande. Pojďme dál a pracujme s časovými razítky.
Příklad 3: Práce s časovým razítkem
Dosud jsme pracovali pouze s daty. Pokud však vaše datum obsahuje čas, můžete čas extrahovat zadáním jeho ideálního formátu.
Zde je příklad, kdy určíme získání času ve 24hodinovém formátu z poskytnutého časového razítka, přičemž datum vynecháme:
Pro 12hodinový formát času používáme HH12 místo HH24. Podívejte se na následující příklad:
A konečně, pokud chceme extrahovat datum a čas z poskytnutého časového razítka, musíme přidat pouze ideální formát, který chceme použít. Zde určíme čas pomocí HH12:MI:SS a přidáme oddělovač. Dále určíme, že se má jako datum použít „dd, měsíc, yyyy“.
Náš konečný výstup je následující:
Příklad 4: Práce s tabulkou
Všechny formáty, které jsme probrali a zmínili, lze aplikovat na tabulku PostgreSQL. Pro tento příklad máme tabulku s názvem „objednávky“, která obsahuje sloupec „datum“. Chcete-li z něj vybrat prvky a použít TO_CHAR() pro sloupec „datum“, provedeme náš příkaz, jak je znázorněno na následujícím obrázku:
Můžete použít jakýkoli formát, který chcete. Zde je stejný příkaz, ale s jiným formátem data:
Pokud chceme ve sloupci data zobrazit pouze den v týdnu a měsíc, vyladíme příkaz takto:
Neváhejte určit jakýkoli ideální formát, se kterým chcete pro svůj případ pracovat.
Závěr
TO_CHAR() je užitečná funkce PostgreSQL, která uživatelům umožňuje převádět časová razítka a další literály na řetězce. Tento příspěvek ukazuje různé způsoby, jak můžete použít TO_CHAR() pro data. Poskytli jsme různé příklady, abychom zajistili, že obsah rychle pochopíte. Doufejme, že TO_CHAR() už vás nebude trápit.