„PostgreSQL“

„PostgreSQL To_char“ laiko žyma su laiko juosta

„PostgreSQL To_char“ laiko žyma su laiko juosta

„PostgreSQL“ formatavimo metodai apima naudingą įrankių rinkinį, skirtą įvairių duomenų tipų (datos / laiko, sveikojo skaičiaus, slankiojo kablelio, skaitmens) vertimui į suformatuotas eilutes ir formatavusių eilučių vertimą atgal į unikalius duomenų tipus. Nuo šiol kartais turime konvertuoti ir laiko juostas. Laiko juostos duomenų formoje laikas visada įrašomas UTC, „PostgreSQL“ laiko žymėse, tačiau pagal numatytuosius nustatymus jis rodomas naršyklėje, sesijoje arba vartotojo vietiniu laiku. Viena iš pagalbinių funkcijų, kuria mes pasitikėjome, yra metodas TO_CHAR (), kuris leidžia laiko žymes ir laiko juostas su laiko juosta, be kitų formų, ir leidžia jums sutvarkyti laiko žymės dalis, kaip jums patinka. Laiko antspaudą, dvigubą tikslumą, trukmę, skaičių ar skaitinę vertę galima konvertuoti į eilutę naudojant PostgreSQL TO_CHAR () metodą. Atrodo, kad yra vieno argumento metodas „to_timestamp“, kuris ima dvigubo tikslumo argumentą ir transformuojasi iš „Unix“ epochos į laiko žymą naudojant laiko juostą. Mes parodysime jums, kaip ką nors padaryti dėl šio pranešimo. Pirmiausia atidžiau pažvelkime į to_char ().

Sintaksė:

Funkcijos to_char () bendroji sintaksė yra tokia:

>> To_char (išraiška, formatas);

TO_CHAR () metodui „PostgreSQL“ reikia dviejų tvirtinimų:

„PostgreSQL“ yra du laiko žymų tipai:

Ir čia yra problema: standartinė laiko žymos duomenų forma nepažįsta laiko juostų. Ir tai yra SQL būtinybė (atrodo, kaip tai galėjo atsirasti). Pagrindinis mūsų tikslas yra išmokti to_Char () laiko žymę su laiko juosta. Norėdami pradėti dirbti su „PostgreSQL“ naudodami funkciją „to_char ()“, atidarykite „PostgreSQL“ komandinės eilutės apvalkalą ir pateikite privalomo serverio, duomenų bazės, prievado numerio, vartotojo vardo ir slaptažodžio parametrų vertes. Palikite šias aplinkybes nepildytas, jei jums reikia naudoti numatytuosius nurodytus parametrus, kaip parodyta žemiau esančiame paveikslėlyje.

Styginių skaičiaus To_char ()

Norėdami suprasti funkcijos to_Char () sampratą, naudodami laiko žymę su laiko juosta, pirmiausia turite išbandyti eilučių skaičių pavyzdį. Taigi turime skaičių „1897“ ir paversime jį „9999“.99 'formatas naudojant toliau pateiktą užklausą. Iš žemiau pateiktos išvesties galite pamatyti, kad eilutės numeris paverstas nurodytu formatu.

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

Štai dar viena konversijos iliustracija. Šį kartą pavertėme skaičių kitu formatu, kuriame yra „kablelis“. Kableliui nurodyti bus naudojamas simbolis „G“.

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

To_char laiko žyma su „TimeZone“

Norėdami suprasti laiko žymę su laiko juosta, apsvarstykime paprastą pavyzdį. Tarkime, kad esate „Pakistane“, todėl dabar jūsų laiko juosta turi būti „PKT“.

01 pavyzdys:

Pabandykime gauti dabartinę laiko žymę užklausoje „SELECT“, konvertuodami ją į datos ir laiko formatą, kaip parodyta toliau pateiktoje užklausoje. Terminas „TZ“ naudojamas dabartinei laiko juostai grąžinti. Išvestyje rodoma diena, data, laikas ir laiko juosta.

>> SELECT to_char (CURRENT_TIMESTAMP, „Pirmadienis dd diena, MMMM HH12: MI AM (TZ)“);

Pakeiskime laiko juostą į „Europa / Roma“.

>> SET laiko juosta = 'Europa / Roma';

Išbandę tą pačią SELECT užklausą, kaip parodyta, gausite kitą laiką, datą ir laiko juostą.

02 pavyzdys:

Kai SELECT užklausoje nurodysite laiko juostą, išvestyje nebus rodoma dabartinė laiko juosta, kaip nurodyta žemiau.

>> SELECT to_char (CURRENT_TIMESTAMP LAIKO ZONOJE „Azija / Jeruzalė“, „yyyy HH12: MI AM (TZ)“);

03 pavyzdys:

Sukurkime greitą lentelę pavadinimu „laikas“ su dviem laukais. Vienas yra „TIMESTAMP“ tipo, kitas - „TIMESTAMPTZ“ tipo.

>> CREATE TABLE laikas (be_timezone TIMESTAMP, su_timezone TIMESTAMPTZ);

Dabar patikrinkime esamą laiko juostą, kurią naudojome savo sistemoje, naudodami SHOW komandą apvalkale taip:

>> RODYTI laiko juostą;

Dabar jūs turite įterpti dabartines laiko juostos, kurią naudojote savo įrenginyje, datos ir laiko reikšmes į lentelę „laikas“, naudodamiesi funkcija „dabar ()“, kaip parodyta žemiau.

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

Dabar galite gauti įrašą iš lentelės „laikas“ naudodami SELECT užklausą, kaip nurodyta toliau. Stulpelyje „without_timezone“ rodoma dabartinė data ir laikas be laiko juostos, o stulpelyje „with_timezone“ rodomas vietinis laikas su visiškai laiko juosta.

>> PASIRINKTI * IŠ laiko;

Pakeiskime laiko juostą į „US / EASTERN“ iš toliau pateiktos užklausos.

>> NUSTATYKITE SESIJOS LAIKO ZONĄ „JAV / RYTAI“;

Dabar dar kartą patikrinkime lentelę. Pamatysite, kaip stulpelio „with_timezone“ vertė buvo rodoma pagal laiko juostą „US / EASTERN“, tačiau „without_timezone“ reikšmė yra tokia pati kaip ir anksčiau.

>> PASIRINKTI * IŠ laiko;

04 pavyzdys:

Turėkime dar keletą to_char () metodo pavyzdžių. Tarkime, kad tas pats aukščiau esantis lentelė „laikas“. Stulpelio „without_timezone“ vertę paversime eilute, kurią sudaro valandos, minutės, sekundės ir laiko juosta. Pabandykime parinkti užklausą „SELECT“ naudodami metodą to_char (), jei norite konvertuoti stulpelio vertę „be_timezone“. Užklausoje paminėjome „TZ“, tačiau laiko juosta nebus rodoma, nes stulpelio vertė nesusideda iš laiko juostos. Nurodyta žemiau komanda pateikia išvestį:

>> SELECT to_char (be_laiko zonos, 'HH12: MI: SS TZ') NUO laiko;

Pabandykime išbandyti tą pačią užklausą kito stulpelio „with_timezone“ atveju, kad paverstume jį valandų, minučių, sekundžių ir laiko juostų eilute. Šį kartą ji taip pat parodys laiko juostą su laiku, naudodama toliau pateiktą užklausą.

>> SELECT to_char (with_timezone, 'HH12: MI: SS TZ') NUO laiko;

Išvada:

Kadangi su / be laiko juostos problema turi įtakos ne tik lentelių skaidymui, rekomenduoju naudoti laiko juostos tipą, kai tik įmanoma. Beveik visose rekomendacijose buvo aptarta, kaip atlikti valymą nuo laiko, naudojant „PostgreSQL“, naudojant vietines valandas. Tinkamas, laiko juostai jautrus sprendimas prideda nedaug komplikacijų, tačiau ateityje gali išgelbėti jus nuo problemų.

„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...