PostgreSQL

Časová pečiatka PostgreSQL To_char s časovým pásmom

Časová pečiatka PostgreSQL To_char s časovým pásmom

Metódy formátovania PostgreSQL zahŕňajú užitočnú zbierku nástrojov na preklad rôznych dátových typov (dátum a čas, celé číslo, pohyblivá čiarka, číselné hodnoty) do formátovaných reťazcov a preklad formátovaných reťazcov späť do jedinečných dátových typov. Odteraz niekedy musíme prevádzať aj časové pásma. Časovanie sa vždy zaznamenáva v UTC v časových značkách PostgreSQL pre dátovú formu časových pásiem, ale štandardne sa zobrazuje v prehliadači, relácii alebo miestnom čase používateľa. Jednou z jeho pomocných funkcií, na ktorú sme sa spoľahli, je metóda TO_CHAR (), ktorá okrem iných foriem umožňuje časové pečiatky a časové pečiatky s časovým pásmom a umožňuje ti usporiadať časti časovej pečiatky, ako sa ti páči. Časovú pečiatku, dvojitú presnosť, trvanie, číslo alebo číselnú hodnotu je možné previesť na reťazec metódou PostgreSQL TO_CHAR (). Zdá sa, že existuje metóda s jedným argumentom „to_timestamp“, ktorá berie argument s dvojitou presnosťou a transformuje sa z epochy Unixu na časovú pečiatku pomocou časovej zóny. V tomto príspevku vám ukážeme, ako s tým niečo urobiť. Najprv sa pozrime bližšie na to_char ().

Syntax:

Všeobecná syntax pre funkciu to_char () je nasledovná:

>> To_char (výraz, formát);

Metóda TO_CHAR () v PostgreSQL vyžaduje dve tvrdenia:

V PostgreSQL sú k dispozícii dva typy časových značiek:

A tu je problém: štandardný dátový formulár časovej pečiatky nezná časové pásma. A je to nevyhnutnosť SQL (ako sa to mohlo stať, zdá sa až za hranicami). Naším hlavným zameraním je naučiť sa časovú pečiatku_Char () s časovou zónou. Ak chcete začať pracovať na PostgreSQL s funkciou 'to_char ()', otvorte shell príkazového riadku PostgreSQL a doručte hodnoty parametrov pre povinný server, databázu, číslo portu, používateľské meno a heslo. Ak potrebujete využiť predvolené parametre, ktoré sú uvedené na nasledujúcom obrázku, nechajte tieto úvahy nevyplnené.

To_char () pre číslo reťazca

Aby ste pochopili koncept funkcie to_Char () pomocou časovej pečiatky s časovou zónou, musíte najskôr vyskúšať príklad číselných reťazcov. Takže máme číslo '1897' a prevedieme ho na '9999.99 'formát pomocou nižšie uvedeného dotazu. Z výstupu nižšie môžete vidieť, že číslo reťazca bolo prevedené do určeného formátu.

>> SELECT to_char (1897, '9999.99 ');

Tu je ďalší príklad konverzie. Tentokrát sme číslo previedli do iného formátu, ktorý obsahuje čiarku. Znak „G“ sa použije na zadanie čiarky.

>> SELECT to_char (367.78, 9G999.99 ');

To_char Timestamp with TimeZone

Aby sme pochopili koncept Časová pečiatka s časovou zónou, pouvažujme o jednoduchom príklade. Predpokladajme, že ste v „Pakistane“, takže vaše časové pásmo musí byť momentálne „PKT“.

Príklad 01:

Pokúsme sa načítať aktuálnu časovú značku v dotaze SELECT a prevádzať ju do formátu dátumu a času, ako je uvedené v dotaze nižšie. Termín „TZ“ sa používa na vrátenie aktuálnej časovej zóny. Výstup zobrazuje deň, dátum, čas a časové pásmo.

>> SELECT to_char (CURRENT_TIMESTAMP, 'Day Mon dd, yyyy HH12: MI AM (TZ)');

Zmeňme naše časové pásmo na „Európa / Rím“.

>> SET TimeZone = 'Europe / Rome';

Po vyskúšaní rovnakého dotazu SELECT získate iný čas, dátum a časové pásmo, ako je to znázornené.

Príklad 02:

Keď v dotaze SELECT zadáte TimeZone, výstup nebude zobrazovať aktuálne časové pásmo podľa výstupu uvedeného nižšie.

>> SELECT to_char (CURRENT_TIMESTAMP AT TIME ZONE 'Asia / Jerusalem', 'yyyy HH12: MI AM (TZ)');

Príklad 03:

Vytvorme rýchlu tabuľku s názvom „čas“ s dvoma poľami. Jeden je typu TIMESTAMP a druhý je typu TIMESTAMPTZ.

>> CREATE TABLE time (without_timezone TIMESTAMP, with_timezone TIMESTAMPTZ);

Teraz skontrolujme aktuálne časové pásmo, ktoré používame v našom systéme, pomocou príkazu SHOW v shelle nasledovne:

>> ZOBRAZIŤ časové pásmo;

Teraz musíte vložiť aktuálne hodnoty dátumu a času aktuálneho časového pásma, ktoré ste vo svojom prístroji používali, do tabuľky „time“ pomocou funkcie „now ()“, ako je uvedené nižšie.

>> INSERT INTO time VALUES (now (), now ());

Teraz môžete načítať záznam z tabuľky „time“ pomocou dotazu SELECT, ako je uvedené nižšie. Stĺpec „without_timezone“ zobrazuje aktuálny dátum a čas bez časového pásma, zatiaľ čo stĺpec „with_timezone“ zobrazuje miestny čas s časovým pásmom úplne.

>> VYBERTE * Z ČASU;

Zmeňte časové pásmo na „US / EASTERN“ z nižšie uvedeného dotazu.

>> NASTAVTE ČASOVÚ ZÓNU ČASU 'USA / VÝCHODNÁ STRÁNKA';

Teraz znova skontrolujme tabuľku. Uvidíte, ako sa zobrazila hodnota stĺpca „with_timezone“ podľa časového pásma „US / EASTERN“, ale hodnota „without_timezone“ je rovnaká ako predtým.

>> VYBERTE * Z ČASU;

Príklad 04:

Poďme si uviesť niekoľko ďalších príkladov pre metódu to_char (). Predpokladajme rovnaký „čas“ vyššie v tabuľke. Budeme prevádzať hodnotu stĺpca „without_timezone“ na reťazec, ktorý sa skladá z hodín, minút, sekúnd a časového pásma. Vyskúšajme príkaz SELECT pomocou metódy to_char () na prevod hodnoty stĺpca „without_timezone“. V našom dotaze sme spomenuli „TZ“, ale časové pásmo sa nezobrazí, pretože hodnota stĺpca sa nenachádza v časovom pásme. Príkaz uvedený nižšie dáva výstup:

>> SELECT to_char (without_timezone, 'HH12: MI: SS TZ') Z ČASU;

Teraz skúsime ten istý dotaz v prípade druhého stĺpca „with_timezone“ a prevedieme ho na reťazec hodín, minút, sekúnd a časového pásma. Tentokrát tiež zobrazí časové pásmo s časom pomocou nižšie uvedeného dotazu.

>> SELECT to_char (with_timezone, 'HH12: MI: SS TZ') Z ČASU;

Záver:

Pretože problém s časovým pásmom / bez neho ovplyvňuje viac ako len rozdelenie na tabuľky, odporúčam vám, kedykoľvek je to možné, použiť typ časového pásma. Takmer všetky pokyny hovorili o tom, ako vykonať čistenie závislé od času v PostgreSQL pomocou miestnych hodín. Správne riešenie citlivé na časové pásmo neprináša veľa komplikácií, ale mohol by vás ušetriť v budúcnosti.

Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...
Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...
Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...