PostgreSQL

PostgreSQL To_char tidsstempel med tidszone

PostgreSQL To_char tidsstempel med tidszone

PostgreSQL-formateringsmetoder inkluderer en nyttig samling værktøjer til oversættelse af forskellige datatyper (dato / tid, heltal, flydende punkt, numerisk) til formaterede strenge og oversættelse af formaterede strenge tilbage til unikke datatyper. Fremover er vi undertiden også nødt til at konvertere tidszoner. Tidspunktet registreres altid i UTC i PostgreSQL-tidsstempler til tidszondataformular, men det vises som standard i browseren, sessionen eller brugerens lokale tid. En af dens hjælperfunktioner, vi er afhængige af, er TO_CHAR () -metoden, der tillader tidsstempler og tidsstempler med tidszone, blandt andre former, og giver dig mulighed for at arrangere stykkerne i et tidsstempel, uanset hvad du vil. Et tidsstempel, en dobbeltpræcision, varigheden, et tal eller en numerisk værdi kan alle konverteres til en streng ved hjælp af metoden PostgreSQL TO_CHAR (). Der ser ud til at være en enkeltargumentmetode, 'to_timestamp', der tager et dobbeltpræcisionsargument og omdannes fra Unix-epoke til tidsstempel ved hjælp af tidszone. Vi viser dig, hvordan du gør noget ved dette i dette indlæg. Lad os se nærmere på to_char () først.

Syntaks:

Generel syntaks for to_char () -funktionen er som følger:

>> To_char (udtryk, format);

TO_CHAR () -metoden i PostgreSQL har brug for to påstande:

Der er to typer tidsstempler tilgængelige i PostgreSQL:

Og her er spørgsmålet: standardformularen for tidsstempeldata er uvidende om tidszoner. Og det er en SQL-nødvendighed (hvordan det kunne have fundet sted virker ud over). Vores hovedfokus er at lære at_Char () tidsstempel med en tidszone. For at begynde at arbejde på PostgreSQL med funktionen 'to_char ()' skal du åbne PostgreSQL kommandolinjeskal og levere parameterværdierne til den obligatoriske server, database, portnummer, brugernavn og adgangskode. Lad disse overvejelser være udfyldte, hvis du har brug for at bruge standardindstillede parametre som vist i nedenstående billede.

To_char () For strengnummer

For at forstå konceptet med funktionen to_Char () ved hjælp af tidsstempel med tidszone, skal du først prøve eksemplet på strengnumre. Så vi har et nummer '1897', og vi konverterer det til '9999.99 'format ved hjælp af nedenstående forespørgsel. Fra nedenstående output kan du se, at strengnummeret er konverteret til det angivne format.

>> VÆLG til_char (1897, '9999.99 ');

Her er en anden illustration til konvertering. Denne gang har vi konverteret et nummer til et andet format med 'komma' i det. Tegnet 'G' bruges til at specificere et komma.

>> VÆLG til_char (367.78, '9G999.99 ');

To_char tidsstempel med TimeZone

For at forstå tidsstemplet med tidszone-konceptet, lad os overveje et simpelt eksempel. Antag at du er i 'Pakistan', så din tidszone skal være 'PKT' lige nu.

Eksempel 01:

Lad os prøve at hente det aktuelle tidsstempel i SELECT-forespørgslen, mens vi konverterer det til dato-tidsformat, som vist i forespørgslen nedenfor. Udtrykket 'TZ' bruges til at give den aktuelle tidszone tilbage. Outputtet viser dag, dato, klokkeslæt og tidszone.

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

Lad os ændre vores tidszone til 'Europa / Rom'.

>> SET TimeZone = 'Europa / Rom';

Du får en anden tid, dato og tidszone, når du prøver den samme SELECT-forespørgsel som vist.

Eksempel 02:

Når du angiver TimeZone i SELECT-forespørgslen, vil output ikke vise den aktuelle tidszone i henhold til nedenstående output.

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

Eksempel 03:

Lad os oprette en hurtig tabel med navnet 'tid' med to felter. Den ene er af TIMESTAMP-typen, og den anden af ​​TIMESTAMPTZ-typen.

>> Opret TABEL-tid (uden_timezone TIMESTAMP, med_timezone TIMESTAMPTZ);

Lad os nu kontrollere den aktuelle tidszone, som vi har brugt i vores system ved hjælp af kommandoen SHOW i skallen som følger:

>> VIS tidszone;

Nu skal du indsætte de aktuelle værdier for dato og klokkeslæt for den aktuelle tidszone, som du har brugt på din enhed i tabellen 'tid' ved hjælp af funktionen 'nu ()' som vist nedenfor.

>> INDSÆT I TIDVÆRDIER (nu (), nu ());

Nu kan du hente posten fra tabellen 'tid' ved hjælp af SELECT-forespørgslen som nedenfor. Kolonnen 'uden_tidzone' viser den aktuelle dato og tid uden en tidszone, mens kolonnen 'med_tidzone' viser den lokale tid med tidszonen fuldstændigt.

>> VÆLG * FRA tid;

Lad os ændre tidszonen til 'US / EASTERN' fra nedenstående forespørgsel.

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

Lad os nu kontrollere tabellen igen. Du vil se, hvordan værdien for kolonnen 'with_timezone' er vist i henhold til tidszone 'US / EASTERN', men værdien for 'without_timezone' er den samme som den var før.

>> VÆLG * FRA tid;

Eksempel 04:

Lad os have nogle flere eksempler på metoden to_char (). Antag det samme ovenstående tabel 'tid'. Vi konverterer kolonnen 'without_timezone' værdi til en streng, der består af timer, minutter, sekunder og tidszone. Lad os prøve SELECT-forespørgslen ved hjælp af metoden to_char () til konvertering af kolonneværdien 'without_timezone'. Vi har nævnt 'TZ' i vores forespørgsel, men det viser ikke tidszonen, fordi kolonneværdien ikke består af tidszonen. Den angivne kommando giver output:

>> VÆLG til_char (uden_timezone, 'HH12: MI: SS TZ') FRA tid;

Lad os nu prøve den samme forespørgsel i tilfælde af den anden kolonne 'med_tidzone' for at konvertere den til strengen af ​​timer, minutter, sekunder og tidszone. Denne gang viser den også tidszonen med tiden ved hjælp af nedenstående forespørgsel.

>> VÆLG til_char (med_timezone, 'HH12: MI: SS TZ') FRA tid;

Konklusion:

Da problemet med / uden tidszone påvirker mere end bare tabelopdeling, anbefaler jeg, at du bruger tidszontypen, når det er praktisk muligt. Næsten alle retningslinjer diskuterede, hvordan man udfører tidsafhængig udrensning i PostgreSQL ved hjælp af lokale timer. En ordentlig, tidszonefølsom løsning tilføjer små komplikationer, men kan spare dig for problemer i fremtiden.

Mus Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Hvis du finder ud af, at din musemarkør hopper eller bevæger sig alene, automatisk tilfældigt, mens du skriver Windows-bærbar computer eller computer,...
Mus Sådan vender du musens og touchpadsens rulle retning i Windows 10
Sådan vender du musens og touchpadsens rulle retning i Windows 10
Mus og Touchpads gør ikke kun computing let, men mere effektiv og mindre tidskrævende. Vi kan ikke forestille os et liv uden disse enheder, men det er...
Mus Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Musemarkøren og markøren i Windows 10 er meget vigtige aspekter af operativsystemet. Dette kan også siges om andre operativsystemer, så i sandhed er d...