PostgreSQL

PostgreSQL To_char időbélyegző időzónával

PostgreSQL To_char időbélyegző időzónával

A PostgreSQL formázási módszerek hasznos eszközgyűjteményt tartalmaznak a különböző adattípusok (dátum / idő, egész szám, lebegőpontos, numerikus) lefordított karakterláncokká történő lefordításához és a formázott karakterláncok egyedi adattípusokká történő visszafordításához. Ezentúl néha időzónákat is át kell alakítanunk. Az időzítést mindig UTC-ben rögzítik a PostgreSQL időbélyegzőiben az időzóna adatlapján, de alapértelmezés szerint a böngészőben, a munkamenetben vagy a felhasználó helyi idejében jelenik meg. Az egyik segítő funkciója, amelyre támaszkodunk, a TO_CHAR () metódus, amely lehetővé teszi az időbélyegek és az időzónával rendelkező időbélyegek használatát, többek között, és lehetővé teszi az időbélyeg darabjainak rendezését, ahogy tetszik. Az időbélyeg, a dupla pontosság, az időtartam, a szám vagy a numerikus érték mind karakterlánccá konvertálható a PostgreSQL TO_CHAR () módszerrel. Úgy tűnik, hogy létezik egy argumentumú "to_timestamp" metódus, amely kettős pontosságú argumentumot vesz fel, és átalakul az Unix korszakból az időbélyegbe az időzóna használatával. Ebben a bejegyzésben megmutatjuk, hogyan kell ezzel foglalkozni. Először nézzük meg közelebbről a to_char () -t.

Szintaxis:

A to_char () függvény általános szintaxisa a következő:

>> To_char (kifejezés, formátum);

A PostgreSQL TO_CHAR () metódusának két állításra van szüksége:

Két időbélyegtípus áll rendelkezésre a PostgreSQL-ben:

És itt van a kérdés: a szokásos időbélyeg adatlap nem ismeri az időzónákat. És SQL szükségszerűség (túlmutatónak tűnik). A fő hangsúly a to_Char () időbélyeg megtanulása időzónával. Ha el akarja kezdeni a PostgreSQL használatát a 'to_char ()' funkcióval, nyissa meg a PostgreSQL parancssori héjat, és adja meg a kötelező szerver, adatbázis, portszám, felhasználónév és jelszó paraméterértékeit. Hagyja kitöltetlenül ezeket a szempontokat, ha az alapértelmezett paramétereket kell elfogyasztania, amint az az alábbi képen látható.

To_char () A karakterlánc számához

A to_Char () függvény fogalmának megértéséhez az időbélyeg és időzóna használatával először ki kell próbálnia a karakterláncok példáját. Tehát van egy „1897” számunk, és ezt átalakítjuk a „9999” -re.99 'formátum az alábbi lekérdezéssel. Az alábbi kimenetből láthatja, hogy a karakterlánc száma a megadott formátumra lett konvertálva.

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

Itt van egy másik illusztráció az átalakításhoz. Ezúttal egy számot alakítottunk át egy másik formátumba, benne vesszővel. A „G” karaktert vessző megadására használjuk.

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

To_char időbélyegző az időzónával

Az Időbélyeg időzónával fogalmának megértéséhez vegyünk egy egyszerű példát. Tegyük fel, hogy „Pakisztánban” tartózkodik, ezért az időzónájának jelenleg „PKT” -nek kell lennie.

01. példa:

Próbáljuk meg lekérni az aktuális időbélyeget a SELECT lekérdezésben, miközben átalakítjuk Dátum-idő formátumba, az alábbi lekérdezés szerint. A „TZ” kifejezést a jelenlegi időzóna visszaadására használják. A kimenet megjeleníti a napot, a dátumot, az időt és az időzónát.

>> SELECT to_char (CURRENT_TIMESTAMP, 'Nap H dd, éééé HH12: MI AM (TZ)');

Változtassuk időzónánkat „Európa / Róma” -ra.

>> SET TimeZone = 'Európa / Róma';

Más időpontot, dátumot és időzónát kap, amikor ugyanazt a SELECT lekérdezést próbálja ki, az ábra szerint.

02. példa:

Amikor a SELECT lekérdezésben megadja az időzónát, akkor a kimenet nem mutatja az aktuális időzónát az alábbi kimenet szerint.

>> SELECT to_char (CURRENT_TIMESTAMP IDŐZónában: „Ázsia / Jeruzsálem”, „éééé HH12: MI AM (TZ)”);

03. példa:

Hozzunk létre egy „time” nevű gyors táblázatot két mezővel. Az egyik TIMESTAMP típusú, a másik TIMESTAMPTZ típusú.

>> CREATE TABLE time (időzónás TIMESTAMP nélkül, időzónával TIMESTAMPTZ);

Most ellenőrizzük az aktuális időzónát, amelyet a rendszerünkben használtunk a SHOW paranccsal a shellben az alábbiak szerint:

>> MUTATJA az időzónát;

Most be kell illesztenie az eszközön használt aktuális időzóna dátumának és időpontjának aktuális értékeit az „idő” táblába az alább látható „most ()” funkció használatával.

>> INSERT INTO time VALUES (most (), most ());

Most lekérheti a rekordot az 'time' táblából az alább megadott SELECT lekérdezéssel. A "nélkül_időzóna" oszlop az aktuális dátumot és időt mutatja időzóna nélkül, míg a "időzónával együtt" oszlop a helyi időt mutatja az időzónával teljesen.

>> SELECT * FROM idő;

Változtassuk az időzónát "US / EASTERN" -re az alábbi lekérdezésben.

>> BEÁLLÍTÁS ÜZLETI IDŐZÓNA „USA / KELET”;

Most ellenőrizzük újra a táblázatot. Látni fogja, hogy a 'with_timezone' oszlop értéke hogyan jelenik meg az 'US / EASTERN' időzóna szerint, de a 'without_timezone' értéke megegyezik az előzővel.

>> SELECT * FROM idő;

44. példa:

Nézzünk még néhány példát a to_char () metódusra. Tegyük fel, hogy ugyanaz a táblázat fenti idő. Átkonvertáljuk a 'without_timezone' oszlop értékét stringekké, amely órákból, percekből, másodpercekből és időzónákból áll. Próbáljuk meg a SELECT lekérdezést a to_char () metódussal az 'oszlopérték' nélkül_időtartomány 'konvertálásához. A 'TZ' szót megemlítettük lekérdezésünkben, de az nem fogja megjeleníteni az időzónát, mert az oszlop értéke nem az időzónából áll. Az alább megadott parancs adja meg a kimenetet:

>> SELECT to_char (időzóna nélkül, 'HH12: MI: SS TZ') FROM time;

Most próbáljuk meg ugyanazt a lekérdezést a másik 'with_timezone' oszlop esetében, hogy alakítsuk át órák, percek, másodpercek és időzónák karakterláncává. Ezúttal az időzónát is megjeleníti az idővel, az alábbi lekérdezés segítségével.

>> SELECT to_char (with_timezone, 'HH12: MI: SS TZ') FROM time;

Következtetés:

Mivel az időzónával / anélkül probléma nemcsak a tábla particionálását érinti, javasoljuk, hogy amikor csak lehetséges, használja az időzóna típust. Szinte minden irányelv megvitatta, hogyan lehet az időtől függő tisztítást végezni a PostgreSQL-ben helyi órák használatával. Egy megfelelő, időzónára érzékeny megoldás kevés bonyodalommal jár, de a jövőben megmenthet a bajtól.

Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...
0 A.D. Bemutató
A sok stratégiai játék közül 0 A.D. átfogó címként és nagyon mély, taktikus játékként képes kiemelkednie annak ellenére, hogy nyílt forráskódú. A játé...
Unity3D bemutató
Bevezetés a Unity 3D-be Az Unity 3D egy erőteljes játékfejlesztő motor. Ez több platformon keresztül lehetővé teszi játékok, mobil, webes, asztali és ...