PostgreSQL

PostgreSQL To_char vremenska oznaka s vremenskom zonom

PostgreSQL To_char vremenska oznaka s vremenskom zonom

PostgreSQL metode oblikovanja uključuju korisnu zbirku alata za prevođenje različitih vrsta podataka (datum / vrijeme, cijeli broj, pokretna zarez, numerička) u formatirane nizove i prevođenje oblikovanih nizova natrag u jedinstvene tipove podataka. Od sada, ponekad moramo pretvoriti i vremenske zone. Vrijeme se uvijek bilježi u UTC u PostgreSQL vremenskim oznakama za obrazac podataka vremenske zone, ali se prema zadanim postavkama prikazuje u pregledniku, sesiji ili lokalnom vremenu korisnika. Jedna od njegovih pomoćnih funkcija na koje smo se pouzdali je metoda TO_CHAR (), koja omogućuje vremenske oznake i vremenske oznake s vremenskom zonom, između ostalih oblika, te vam omogućuje da rasporedite dijelove vremenske oznake kako želite. Vremenska oznaka, dvostruka preciznost, trajanje, broj ili numerička vrijednost mogu se pretvoriti u niz metodom PostgreSQL TO_CHAR (). Čini se da postoji metoda s jednim argumentom, 'to_timestamp', koja uzima argument dvostruke preciznosti i transformira se iz Unix epohe u vremensku oznaku pomoću vremenske zone. U ovom postu pokazat ćemo vam kako nešto poduzeti u vezi s tim. Pogledajmo prvo pobliže to_char ().

Sintaksa:

Opća sintaksa za funkciju to_char () je kako slijedi:

>> To_char (izraz, format);

Metoda TO_CHAR () u PostgreSQL-u treba dvije tvrdnje:

U PostgreSQL-u su dostupne dvije vrste vremenskih žigova:

I ovdje je problem: standardni obrazac podataka o vremenskoj oznaci ne zna za vremenske zone. A to je nužnost SQL-a (kako se to moglo dogoditi, čini se izvan). Naš glavni fokus je naučiti vremensku oznaku to_Char () s vremenskom zonom. Da biste započeli raditi na PostgreSQL-u s funkcijom 'to_char ()', otvorite ljusku naredbenog retka PostgreSQL i dostavite vrijednosti parametara za obavezni poslužitelj, bazu podataka, broj porta, korisničko ime i lozinku. Ostavite ova razmatranja neispunjenima ako trebate unijeti zadane zadane parametre kao što je prikazano na donjoj slici.

To_char () Za niz niza

Da biste razumjeli koncept funkcije to_Char () pomoću vremenske oznake s vremenskom zonom, prvo morate isprobati primjer brojeva nizova. Dakle, imamo broj '1897' i pretvorit ćemo ga u '9999.99 'formatu koristeći upit u nastavku. Iz donjeg izlaza možete vidjeti da je broj niza pretvoren u navedeni format.

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

Evo još jedne ilustracije za konverziju. Ovaj smo put broj pretvorili u drugi format koji sadrži "zarez". Znak 'G' koristit će se za određivanje zareza.

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

To_char vremenska oznaka s vremenskom zonom

Da bismo razumjeli vremensku oznaku s konceptom vremenske zone, razmotrimo jednostavan primjer. Pretpostavimo da se nalazite u 'Pakistanu', pa vaša vremenska zona trenutno mora biti 'PKT'.

Primjer 01:

Pokušajmo dohvatiti trenutnu vremensku oznaku u SELECT upitu dok je pretvaramo u format Date-time, kao što je prikazano u upitu ispod. Izraz "TZ" koristi se za vraćanje trenutne vremenske zone. Izlaz prikazuje dan, datum, vrijeme i vremensku zonu.

>> ODABIR to_char (CURRENT_TIMESTAMP, 'Dan ponedjeljak dd, gggg HH12: MI AM (TZ)');

Promijenimo svoju vremensku zonu u 'Europa / Rim'.

>> SET TimeZone = 'Europa / Rim';

Dobit ćete drugo vrijeme, datum i vremensku zonu nakon isprobavanja istog SELECT upita, kao što je prikazano.

Primjer 02:

Kada u upitu SELECT navedete vremensku zonu, tada izlaz neće prikazati trenutnu vremensku zonu prema dolje navedenom izlazu.

>> ODABERITE to_char (TEKUĆE VREMENSKO KAMPANJE U VRIJEME ZONE 'Azija / Jeruzalem', 'gggg HH12: MI AM (TZ)');

Primjer 03:

Stvorimo brzu tablicu pod nazivom 'vrijeme' s dva polja. Jedan je tipa TIMESTAMP, a drugi TIMESTAMPTZ.

>> IZRADI TABELU vrijeme (bez_vremenske zone TIMESTAMP, sa_vremenske zone TIMESTAMPTZ);

Sada provjerimo trenutnu vremensku zonu koju smo koristili u našem sustavu pomoću naredbe SHOW u ljusci kako slijedi:

>> POKAŽI vremensku zonu;

Sada morate umetnuti trenutne vrijednosti datuma i vremena trenutne vremenske zone koje ste koristili na uređaju u tablicu 'vrijeme' pomoću funkcije 'sada ()' kao što je prikazano dolje.

>> UMESTI U VRIJEDNOSTI vremena (sada (), sada ());

Sada možete dohvatiti zapis iz tablice 'vrijeme' pomoću upita SELECT kao u nastavku. Stupac 'without_timezone' prikazuje trenutni datum i vrijeme bez vremenske zone, dok stupac 'with_timezone' prikazuje lokalno vrijeme s vremenskom zonom u potpunosti.

>> ODABERI * OD vremena;

Promijenimo vremensku zonu u 'US / EASTERN' iz upita u nastavku.

>> POSTAVITE VREMENSKU ZONU SESIJE 'US / EASTERN';

Ajmo sada provjeriti tablicu. Vidjet ćete kako je prikazana vrijednost stupca 'with_timezone' prema vremenskoj zoni 'US / EASTERN', ali vrijednost 'without_timezone' je ista kao i prije.

>> ODABERI * OD vremena;

Primjer 04:

Imajmo još nekoliko primjera za metodu to_char (). Pretpostavimo isto "vrijeme" gornje tablice. Pretvorit ćemo vrijednost stupca 'without_timezone' u niz koji se sastoji od sati, minuta, sekundi i vremenske zone. Pokušajmo s SELECT upitom pomoću metode to_char () za pretvorbu vrijednosti stupca 'without_timezone'. U našem smo upitu spomenuli 'TZ', ali neće prikazati vremensku zonu jer se vrijednost stupca ne sastoji od vremenske zone. Navedena naredba daje izlaz:

>> ODABIR to_char (bez_vremenske zone, 'HH12: MI: SS TZ') IZ vremena;

Ajmo sada isprobati isti upit u slučaju drugog stupca 'with_timezone', da ga pretvorimo u niz sati, minuta, sekundi i vremenske zone. Ovaj put prikazat će i vremensku zonu s vremenom koristeći upit u nastavku.

>> ODABIR to_char (with_timezone, 'HH12: MI: SS TZ') IZ vremena;

Zaključak:

Budući da problem sa / bez vremenske zone utječe ne samo na particioniranje tablice, preporučujem da koristite vrstu vremenske zone kad god je to izvedivo. Gotovo sve smjernice raspravljale su o tome kako izvršiti čišćenje ovisno o vremenu u PostgreSQL-u pomoću lokalnih sati. Ispravno rješenje osjetljivo na vremensku zonu dodaje malo komplikacija, ali u budućnosti bi vas moglo spasiti problema.

HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...
Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...
Kako prikazati brojač FPS-a u Linux igrama
Linux gaming dobio je velik poticaj kada je Valve najavio Linux podršku za Steam klijent i njihove igre 2012. godine. Od tada su mnoge AAA i indie igr...