Postgres pro documentație standard 9 1

În plus față de aceste funcții, instrucțiunea OVERLAPS SQL este acceptată.

Rezultatul său este adevărat, când se intersectează două perioade de timp (definite de limitele lor) și altfel false. Perioadele limită pot fi specificate fie ca o pereche de date, oră sau date în timp, fie ca dată, oră (sau dată cu timpul) cu un interval. Atunci când se specifică o pereche de valori, prima poate fi atât începutul, cât și sfârșitul perioadei: OVERLAPS consideră automat începutul perioadei ca fiind o valoare mai mică. Perioadele de timp sunt considerate a fi pe jumătate deschise, adică începutul<=время<конец . если только начало и конец не равны — в этом случае период представляет один момент времени. Это означает, например, что два периода, имеющие только общую границу, не будут считаться пересекающимися.







Scăderea datelor și a datelor cu timpul poate fi, de asemenea, o operație non-trivială. O modalitate fundamentală simplă de a efectua acest calcul este de a converti fiecare valoare la numărul de secunde folosind EXTRACT (EPOCH FROM.). și apoi găsiți diferența dintre rezultate; se va primi numărul de secunde dintre cele două date. Acest lucru va lua în considerare numărul inegal de zile în lunile, schimbările în fusul orar și în timpul de vară. Când se scad datele sau datele în timp, operatorul "-" indică numărul de zile (24 ore) și ore / minute / secunde între aceste valori, luând în considerare aceiași factori. Funcția de vârstă returnează numărul de ani, luni, zile și ore / minute / secunde, scăzând după câmpuri și apoi recalculând valorile negative. Diferența dintre aceste abordări este ilustrată de următoarele interogări. Rezultatele prezentate au fost obținute pentru fusul orar "US / Eastern"; Între două date specificate a existat o tranziție la ora de vară:

Extrasul de funcții devine din câmpurile de valori date / timp, cum ar fi anul sau ora. Aici sursa este o valoare de timbru. timp sau interval. (Expresiile datei de tip sunt de tip timestamp, deci acest tip este de asemenea permis.) Câmpul specificat este identificatorul prin care câmpul specificat este selectat din sursă. Funcția extras returnează valorile tipului de dublă precizie. Câmpurile valide sunt:







Pentru valorile timestampului, aceasta este ziua lunii (1 - 31), pentru valorile intervalelor - numărul de zile ale deceniului

An, împărțit la 10 dow

Ziua săptămânii, numărând de duminică (0) până sâmbătă (6)

Rețineți că, în extras, zilele săptămânii nu sunt numerotate în același mod ca în funcția to_char ("D"). Doy

Ziua anului (1 - 365/366) epocă

Pentru valorile timestamp cu fusul orar, acesta este numărul de secunde de la 1970-01-01 00:00:00 UTC (poate fi negativ); pentru valorile datei și timestampului, acesta este numărul de secunde din 1970-01-01 00:00:00 ora locală, iar pentru intervalul - durata totală a intervalului în secunde

Convertiți ora epocii înapoi la valoarea dată / oră după cum urmează:

(Această conversie este efectuată de funcția to_timestamp.) Ora

Oră (0 - 23) este

Ziua săptămânii, numărând de luni (1) până duminică (7)

Rezultatul diferă de dow doar pentru duminică. Această numerotare corespunde ISO 8601

An calendaristic săptămânal ISO 8601, în care data scade (nu se aplică intervalelor)

Acest câmp nu a fost în PostgreSQL înainte de versiunea 8.3. microsecunde

Valoarea secundelor cu o parte fracționată înmulțită cu 1 000 000; rețineți că acesta include întregul secol al mileniului

Valoarea secundelor cu o parte fracționată, înmulțită cu 1000; rețineți că include secunde întregi. un minut

Minute (0 - 59) lună

Pentru valorile timestampului, acesta este numărul lunii din an (1 - 12), iar pentru interval - restul numărului de luni împărțit la 12 (în intervalul 0 - 11) trimestru

Trimestrul anului (1 - 4), care este a doua dată

Secunde, inclusiv fusul orar fracționat (0 - 59 [1])

Deplasarea fusului orar de la UTC, reprezentată în câteva secunde. Valorile pozitive corespund fuselor orare la est de UTC, iar valori negative la vest. (Din punct de vedere tehnic, Postgres Pro folosește UT1, deoarece secvențele de coordonare nu sunt luate în considerare.) Timezone_hour

Câmpul de ceas în offsetul fusului orar al zonei de fus orar

Câmpuri minute în offsetul fusului orar

Domeniul anului. Rețineți că anul 0 nu a fost și acest lucru trebuie luat în considerare, scăzând din anii erei noastre BC.

Funcția de extract este destinată, în principal, în scopuri computaționale. Funcțiile de formatare a datei / orei sunt descrise în secțiunea 9.8.

Funcția date_part simulează echivalentul tradițional Ingres al extrasului funcției SQL standard.

Rețineți că aici câmpul parametru trebuie să fie o valoare de șir, nu un nume. Funcția date_part acceptă aceleași câmpuri ca și extrasul.

Funcția date_trunc funcționează ca trunc pentru numere.

Aici, valoarea este o expresie a timestampului sau a tipului de interval. (Valorile tipurilor de dată și oră sunt date automat tipurilor de timp și intervalului respectiv.) Parametrul câmpului specifică cât de precis trebuie să tăiați valoarea transmisă. Valoarea returnată va fi un marcaj de timp sau un interval și toate valorile sale mai puțin semnificative decât câmpul specificat vor fi zero (sau unul dacă este un număr de zi sau de lună).

Câmpul de parametru poate lua următoarele valori:







Articole similare

Trimiteți-le prietenilor: