PostgreSQL

PostgreSQL To_char tidsstempel med tidssone

PostgreSQL To_char tidsstempel med tidssone

PostgreSQL-formateringsmetoder inkluderer en nyttig samling verktøy for å oversette forskjellige datatyper (dato / klokkeslett, heltall, flytende punkt, numerisk) til formaterte strenger og oversette formaterte strenger tilbake til unike datatyper. Fremover må vi noen ganger også konvertere tidssoner. Timingen blir alltid registrert i UTC i PostgreSQL-tidsstempler for skjema for tidssone, men den vises som standard i nettleseren, økten eller brukerens lokale tid. En av hjelperfunksjonene vi har stole på, er TO_CHAR () -metoden, som blant annet tillater tidsstempler og tidsstempler med tidssone, og som gjør det mulig å ordne delene av et tidsstempel uansett. Et tidsstempel, en dobbel presisjon, varigheten, et tall eller en numerisk verdi kan alle konverteres til en streng ved hjelp av metoden PostgreSQL TO_CHAR (). Det ser ut til å være en enkeltargumentmetode, 'to_timestamp', som tar et dobbelt presisjonsargument og forvandler seg fra Unix-epoke til tidsstempel ved hjelp av tidssone. Vi viser deg hvordan du kan gjøre noe med dette i dette innlegget. La oss se nærmere på to_char () først.

Syntaks:

Generell syntaks for to_char () -funksjonen er som følger:

>> To_char (uttrykk, format);

TO_CHAR () -metoden i PostgreSQL trenger to påstander:

Det er to typer tidsstempler tilgjengelig i PostgreSQL:

Og her er problemet: standard skjema for tidsstempeldata er uvitende om tidssoner. Og det er en SQL-nødvendighet (hvordan det kunne ha skjedd virker mer enn). Vårt hovedfokus er å lære å_Char () tidsstempel med en tidssone. For å begynne å jobbe med PostgreSQL med 'to_char ()' - funksjonen, åpne PostgreSQL kommandolinjeskall og lever parameterverdiene for den obligatoriske serveren, databasen, portnummeret, brukernavnet og passordet. La disse betraktningene være utfylt hvis du trenger å konsumere de angitte standardparametrene som vist i bildet nedenfor.

To_char () For strengnummer

For å forstå begrepet to_Char () -funksjonen ved hjelp av tidsstempel med tidssone, må du først prøve eksemplet på strengnumre. Så vi har tallet '1897', og vi vil konvertere det til '9999.99 'format ved hjelp av spørringen nedenfor. Fra utdataene nedenfor kan du se at strengnummeret er konvertert til det angitte formatet.

>> VELG til_char (1897, '9999.99 ');

Her er en annen illustrasjon for konvertering. Denne gangen har vi konvertert et tall til et annet format med 'komma' i det. Tegnet 'G' vil bli brukt til å spesifisere et komma.

>> VELG til_char (367.78, '9G999.99 ');

To_char tidsstempel med TimeZone

For å forstå tidsstempelet med tidssone-konseptet, la oss vurdere et enkelt eksempel. Anta at du er i 'Pakistan', så tidssonen din må være 'PKT' akkurat nå.

Eksempel 01:

La oss prøve å hente gjeldende tidsstempel i SELECT-spørringen mens vi konverterer det til dato-tidsformat, som vist i spørringen nedenfor. Begrepet 'TZ' brukes til å gi tilbake den nåværende tidssonen. Utgangen viser dag, dato, tid og tidssone.

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

La oss endre tidssonen vår til 'Europa / Roma'.

>> SET TimeZone = 'Europa / Roma';

Du får en annen tid, dato og tidssone når du prøver den samme VELG-spørringen, som vist.

Eksempel 02:

Når du spesifiserer TimeZone i SELECT-spørringen, vil ikke utgangen vise gjeldende tidssone i henhold til utdataene nedenfor.

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

Eksempel 03:

La oss lage en rask tabell med navnet 'tid' med to felt. Den ene er av TIMESTAMP-typen, og den andre er av TIMESTAMPTZ-typen.

>> OPPRETT TABELL tid (uten_timezone TIMESTAMP, med_timezone TIMESTAMPTZ);

La oss nå sjekke gjeldende tidssone som vi har brukt i systemet vårt ved hjelp av SHOW-kommandoen i skallet som følger:

>> VIS tidssone;

Nå må du sette inn de nåværende verdiene for datoen og klokkeslettet for den aktuelle tidssonen du har brukt på enheten din i tabellen "tid" ved å bruke funksjonen "nå ()" som vist nedenfor.

>> INSERT I TIDVERDIER (nå (), nå ());

Nå kan du hente posten fra tabellen 'tid' ved hjelp av SELECT-spørringen som nedenfor. Kolonnen 'uten tidstid' viser gjeldende dato og tid uten tidssone, mens kolonnen 'med tidssone' viser lokal tid med tidssonen helt.

>> VELG * FRA tid;

La oss endre tidssonen til 'US / EASTERN' fra spørringen nedenfor.

>> SET SESSION TIME ZONE 'US / EASTERN';

La oss nå sjekke tabellen igjen. Du vil se hvordan verdien til kolonnen 'with_timezone' er vist i henhold til tidssonen 'US / EASTERN', men verdien til 'without_timezone' er den samme som den var før.

>> VELG * FRA tid;

Eksempel 04:

La oss ha noen flere eksempler på to_char () -metoden. Anta det samme tabellen 'tid'. Vi konverterer kolonnen 'without_timezone' verdi til en streng som består av timer, minutter, sekunder og tidssone. La oss prøve SELECT-spørringen ved hjelp av to_char () -metoden for å konvertere kolonneverdien 'without_timezone'. Vi har nevnt 'TZ' i spørringen vår, men den vil ikke vise tidssonen fordi kolonneverdien ikke består av tidssonen. Den angitte kommandoen nedenfor gir utdata:

>> VELG til_char (uten_timezone, 'HH12: MI: SS TZ') FRA tid;

La oss nå prøve den samme spørringen i tilfelle av den andre kolonnen 'with_timezone', for å konvertere den til strengen av timer, minutter, sekunder og tidssone. Denne gangen viser den også tidssonen med tiden ved hjelp av spørringen nedenfor.

>> VELG til_char (med_timezone, 'HH12: MI: SS TZ') FRA tid;

Konklusjon:

Siden problemet med / uten tidssone påvirker mer enn bare tabellpartisjonering, anbefaler jeg at du bruker tidssonetypen når det er mulig. Nesten alle retningslinjene diskuterte hvordan man gjør tidsavhengig rensing i PostgreSQL ved bruk av lokale timer. En skikkelig, tidssensosensitiv løsning gir små komplikasjoner, men kan redde deg for problemer i fremtiden.

Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...