PostgreSQL

PostgreSQL To_char ajatempel ajavööndiga

PostgreSQL To_char ajatempel ajavööndiga

PostgreSQL-i vormindamismeetodid sisaldavad kasulikku tööriistakogu erinevate andmetüüpide (kuupäev / kellaaeg, täisarv, ujukoma, numbriline) tõlkimiseks vormindatud stringideks ja vormindatud stringide ümbertõlkimiseks kordumatuteks andmetüüpideks. Nüüdsest peame mõnikord ka ajavööndid teisendama. Ajastus salvestatakse alati ajavööndi andmete vormi aja järgi UTC-ga PostgreSQL-i ajatemplites, kuid vaikimisi kuvatakse see brauseris, seansis või kasutaja kohaliku aja järgi. Üks selle abifunktsioonidest, millele oleme tuginenud, on meetod TO_CHAR (), mis võimaldab muude vormide hulgas ajatemplit ja ajavööndiga ajatemplit ning võimaldab teil ajatempli tükke paigutada nii, nagu soovite. Ajatempli, topelttäpsuse, kestuse, arvu või arvväärtuse saab kõik stringiks teisendada, kasutades meetodit PostgreSQL TO_CHAR (). Tundub olevat ühe argumendiga meetod "to_timestamp", mis võtab topelttäpsuse argumendi ja teisendab ajavööndi abil Unixi ajastust ajatempliks. Kuidas selles osas midagi ette võtta, näitame selles postituses. Vaatame kõigepealt lähemalt to_char ().

Süntaks:

Funktsiooni to_char () üldine süntaks on järgmine:

>> To_char (avaldis, formaat);

PostgreSQL-i meetod TO_CHAR () vajab kahte väidet:

PostgreSQL-is on saadaval kaks ajatemplitüüpi:

Ja siin on küsimus: tavaline ajatempli andmevorm ei tunne ajavööndeid. Ja see on SQL-i vajalikkus (kuidas see võis juhtuda, tundub kaugemale). Meie põhirõhk on õppida ajavööndiga ajatemplit to_Char (). PostgreSQL-i funktsiooniga 'to_char ()' töötamise alustamiseks avage PostgreSQL-i käsurea kest ja edastage kohustusliku serveri, andmebaasi, pordi numbri, kasutajanime ja parooli parameetriväärtused. Jätke need kaalutlused täitmata, kui peate kasutama vaikimisi määratud parameetreid, nagu on näidatud alloleval pildil.

To_char () stringinumbri jaoks

Funktsiooni to_Char () kontseptsiooni mõistmiseks ajavööndiga ajatempli abil peate kõigepealt proovima stringinumbrite näidet. Nii et meil on number 1897 ja teisendame selle numbriks 9999.99 'vorming, kasutades allolevat päringut. Allpool olevast väljundist näete, et stringi number on teisendatud määratud vormingusse.

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

Siin on veel üks näide teisendamiseks. Seekord oleme teisendanud numbri teiseks vorminguks, kus on „koma”. Koma määramiseks kasutatakse märki 'G'.

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

To_chari ajatempel ajavööndiga

Ajavööndi kontseptsiooni ajatempli mõistmiseks kaalume lihtsat näidet. Oletame, et asute Pakistanis, seega peab teie ajavöönd olema praegu PKT.

Näide 01:

Proovime tõmmata praegune ajatempli päringust SELECT, teisendades selle kuupäeva-kellaaja vormingusse, nagu on näidatud allpool olevas päringus. Terminit "TZ" kasutatakse praeguse ajavööndi tagastamiseks. Väljundis kuvatakse päev, kuupäev, kellaaeg ja ajavöönd.

>> SELECT to_char (CURRENT_TIMESTAMP, 'päev es pp, aaaa HH12: MI AM (TZ)');

Muutkem ajavööndiks „Euroopa / Rooma”.

>> SET ajavöönd = 'Euroopa / Rooma';

Sama SELECT-päringu proovimisel saate erineva kellaaja, kuupäeva ja ajavööndi, nagu näidatud.

Näide 02:

Kui määrate päringus ajavööndi, siis väljund ei näita praegust ajavööndit vastavalt allpool olevale väljundile.

>> SELECT to_char (CURRENT_TIMESTAMP AJAVööndis 'Aasia / Jeruusalemm', 'aaaa HH12: MI AM (TZ)');

Näide 03:

Looge kahe tabeliga kiire tabel nimega 'aeg'. Üks on TIMESTAMP tüüpi ja teine ​​on TIMESTAMPTZ tüüpi.

>> CREATE TABLE aeg (ilma ajavööndi TIMESTAMP, ajavööndiga TIMESTAMPTZ);

Nüüd kontrollime praegust ajavööndit, mida oleme oma süsteemis kasutanud, kasutades shellis käsku SHOW järgmiselt:

>> NÄITA ajatsooni;

Nüüd peate tabelisse „aeg” sisestama praeguse ajavööndi kuupäeva ja kellaaja praegused väärtused, mida olete oma seadmes kasutanud, kasutades funktsiooni „nüüd ()”, nagu allpool näidatud.

>> INSERT INTO time VALUES (nüüd (), nüüd ());

Nüüd saate kirje tabelist "aeg" tuua, kasutades allpool toodud päringut SELECT. Veerus "ilma_vööndita" kuvatakse praegune kuupäev ja kellaaeg ilma ajavööndita, veerus "ajavööndiga" aga kohalik aeg koos ajavööndiga.

>> VALI * ajast;

Muutkem allpool olevast päringust ajavööndiks „US / EASTERN”.

>> MÄÄRA ISTUNNI AJAVöönd 'USA / IDA';

Nüüd kontrollime tabelit uuesti. Näete, kuidas veeru 'aja_vööndiga' väärtus on kuvatud vastavalt ajavööndile 'USA / EASTERN', kuid 'ilma_ajavööndita' väärtus on sama, mis oli enne.

>> VALI * ajast;

Näide 04:

Olgu veel mõned näited meetodi to_char () kohta. Oletame, et sama tabeli kohal on „aeg”. Teisendame veeru „aja_vööndita” väärtuse stringiks, mis koosneb tundidest, minutitest, sekunditest ja ajavööndist. Proovime veeruväärtuse 'without_timezone' teisendamiseks meetodit to_char () proovida SELECT päringut. Oleme oma päringus maininud 'TZ', kuid see ei näita ajavööndit, kuna veeru väärtus ei koosne ajavööndist. Allpool toodud käsk annab väljundi:

>> SELECT to_char (ilma ajavööndita, 'HH12: MI: SS TZ') ajast;

Proovime nüüd sama veergu 'with_timezone' puhul sama päringut teisendada selle tundide, minutite, sekundite ja ajavööndi stringiks. Seekord näitab see ka ajavööndit koos ajaga, kasutades allolevat päringut.

>> SELECT to_char (ajavööndiga, 'HH12: MI: SS TZ') ajast;

Järeldus:

Kuna ajavööndiga / ilma ajavööndi probleem mõjutab mitte ainult tabeli jaotamist, siis soovitan kasutada ajavööndi tüüpi igal võimalusel. Peaaegu kõikides juhistes arutati, kuidas teha PostgreSQL-is ajapõhist puhastust kohalike tundide abil. Korralik ajavöönditundlik lahendus lisab vähe tüsistusi, kuid võib tulevikus teid probleemidest säästa.

Parimad Linuxi mängupuldi kaardistamise rakendused
Kui teile meeldib mängida Linuxis mänge tavalise klaviatuuri ja hiire sisestussüsteemi asemel mängupuldiga, on teie jaoks mõned kasulikud rakendused. ...
Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...