PostgreSQL

PostgreSQL To_char tidsstämpel med tidszon

PostgreSQL To_char tidsstämpel med tidszon

PostgreSQL-formateringsmetoder inkluderar en användbar samling verktyg för att översätta olika datatyper (datum / tid, heltal, flytpunkt, numerisk) till formaterade strängar och översätta formaterade strängar tillbaka till unika datatyper. Hädanefter måste vi ibland också konvertera tidszoner. Tidpunkten registreras alltid i UTC i PostgreSQL-tidsstämplar för tidszonsformulär, men den visas som standard i webbläsaren, sessionen eller användarens lokala tid. En av dess hjälpfunktioner som vi har lärt oss är TO_CHAR () -metoden, som tillåter tidsstämplar och tidsstämplar med tidszon, bland andra former, och gör att du kan ordna bitarna i en tidsstämpel hur du vill. En tidsstämpel, en dubbel precision, varaktigheten, ett tal eller ett numeriskt värde kan alla konverteras till en sträng med metoden PostgreSQL TO_CHAR (). Det verkar finnas en metod med ett argument, 'to_timestamp', som tar ett dubbelprecisionsargument och förvandlas från Unix-epoken till tidsstämpeln med hjälp av tidszon. Vi visar dig hur du gör något åt ​​detta i det här inlägget. Låt oss ta en närmare titt på to_char () först.

Syntax:

Allmän syntax för to_char () -funktionen är som följer:

>> To_char (uttryck, format);

TO_CHAR () -metoden i PostgreSQL kräver två påståenden:

Det finns två typer av tidsstämpel tillgängliga i PostgreSQL:

Och här är frågan: standardformatet för tidsstämpeldata är okunnigt om tidszoner. Och det är en SQL-nödvändighet (hur det kunde ha inträffat verkar bortom). Vårt huvudfokus är att lära sig att_Char () tidsstämpel med en tidszon. För att börja arbeta med PostgreSQL med funktionen 'to_char ()', öppna PostgreSQL-kommandoradsskalet och leverera parametervärdena för den obligatoriska servern, databasen, portnumret, användarnamnet och lösenordet. Lämna dessa överväganden ofyllda om du behöver konsumera de standardinställda parametrarna som visas i bilden nedan.

To_char () För strängnummer

För att förstå begreppet to_Char () -funktionen med hjälp av tidsstämpel med tidszon måste du först prova exemplet på strängnummer. Så vi har numret '1897' och vi kommer att konvertera det till '9999.99 'format med hjälp av nedanstående fråga. Från utdata nedan kan du se att strängnumret har konverterats till det angivna formatet.

>> VÄLJ till_char (1897, '9999.99 ');

Här är en annan illustration för konvertering. Den här gången har vi konverterat ett nummer till ett annat format med "komma" i det. Tecknet 'G' kommer att användas för att ange ett komma.

>> VÄLJ till_char (367.78, '9G999.99 ');

To_char Tidsstämpel med TimeZone

För att förstå tidsstämpeln med tidszonskonceptet, låt oss överväga ett enkelt exempel. Antag att du befinner dig i "Pakistan", så din tidszon måste vara "PKT" just nu.

Exempel 01:

Låt oss försöka hämta den aktuella tidsstämpeln i SELECT-frågan medan vi konverterar den till formatet Date-time, som visas i frågan nedan. Termen 'TZ' används för att ge tillbaka den aktuella tidszonen. Utdata visar dag, datum, tid och tidszon.

>> VÄLJ till_char (CURRENT_TIMESTAMP, 'Day Mon dd, yyyy HH12: MI AM (TZ)');

Låt oss ändra vår tidszon till "Europa / Rom".

>> SET TimeZone = 'Europa / Rom';

Du får en annan tid, datum och tidszon när du försöker samma SELECT-fråga, som visas.

Exempel 02:

När du anger TimeZone i SELECT-frågan, visar inte utgången den aktuella tidszonen enligt nedanstående utdata.

>> VÄLJ till_char (CURRENT_TIMESTAMP AT TIME ZONE 'Asia / Jerusalem', 'yyyy HH12: MI AM (TZ)');

Exempel 03:

Låt oss skapa en snabb tabell med namnet "tid" med två fält. Den ena är av TIMESTAMP-typ och den andra av TIMESTAMPTZ-typ.

>> CREATE TABLE time (without_timezone TIMESTAMP, with_timezone TIMESTAMPTZ);

Låt oss nu kontrollera den aktuella tidszonen som vi har använt i vårt system med kommandot SHOW i skalet enligt följande:

>> VISA tidszon;

Nu måste du infoga de aktuella värdena för datum och tid för den aktuella tidszonen som du har använt på din enhet i tabellen "tid" genom att använda funktionen "nu ()" som visas nedan.

>> INSÄTTA I TIDVÄRDEN (nu (), nu ());

Nu kan du hämta posten från tabellen "tid" med SELECT-frågan enligt nedan. Kolumnen 'utan_tidzon' visar aktuellt datum och tid utan tidszon, medan kolumnen 'med_tidzon' visar lokal tid med tidszonen helt.

>> VÄLJ * FRÅN tid;

Låt oss ändra tidszonen till 'US / EASTERN' från frågan nedan.

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

Låt oss nu kontrollera tabellen igen. Du kommer att se hur värdet för kolumnen 'with_timezone' har visats enligt tidszonen 'US / EASTERN', men värdet för 'without_timezone' är detsamma som det var tidigare.

>> VÄLJ * FRÅN tid;

Exempel 04:

Låt oss få några fler exempel på metoden to_char (). Antag att samma tid ovanstående tabell 'tid'. Vi kommer att konvertera kolumnen 'without_timezone' värde till en sträng som består av timmar, minuter, sekunder och tidszon. Låt oss prova SELECT-frågan med to_char () -metoden för att konvertera kolumnvärde 'without_timezone'. Vi har nämnt 'TZ' i vår fråga, men det kommer inte att visa tidszonen eftersom kolumnvärdet inte består av tidszonen. Det angivna kommandot nedan ger utdata:

>> VÄLJ till_char (utan_tidzon, 'HH12: MI: SS TZ') FRÅN tid;

Låt oss nu prova samma fråga när det gäller den andra kolumnen 'with_timezone', för att konvertera den till strängen timmar, minuter, sekunder och tidszon. Den här gången visar den tidszonen med tiden samt med hjälp av frågan nedan.

>> VÄLJ till_char (med_tidzon, 'HH12: MI: SS TZ') FRÅN tid;

Slutsats:

Eftersom problemet med / utan tidszon påverkar mer än bara tabellpartitionering rekommenderar jag att du använder tidszontypen när det är möjligt. Nästan alla riktlinjer diskuterade hur man gör tidsberoende rensning i PostgreSQL med hjälp av lokala timmar. En riktig, tidszonskänslig lösning ger lite komplikationer men kan spara dig från problem i framtiden.

Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...
Hur man använder GameConqueror Cheat Engine i Linux
Artikeln täcker en guide om hur du använder GameConqueror-fuskmotorn i Linux. Många användare som spelar spel på Windows använder ofta applikationen "...
Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...