Postgres pro standard dokumentáció 9 1
Ezen funkciók mellett az OVERLAPS SQL utasítás is támogatott.
Eredménye igaz, amikor két határidõ (melyet határaik határozzák meg) keresztezik egymást és egyébként hamis. Az időhatárokat megadhatjuk a dátumok, az idő vagy a dátumok, illetve az idő, illetve a dátum, az idő (vagy a dátum és idő) párral egy intervallummal. Amikor egy pár értéket ad meg, az első lehet az időszak eleje és vége is: az OVERLAPS automatikusan úgy tekinti, hogy az időszak kezdete alacsonyabb érték. Az időtartamok félig nyitottak, vagyis az elején<=время<конец . если только начало и конец не равны — в этом случае период представляет один момент времени. Это означает, например, что два периода, имеющие только общую границу, не будут считаться пересекающимися.
A dátumok és dátumok kivonása az idővel is lehet nem triviális művelet. Az egyik alapvetően egyszerű módja ennek a számításnak az elvégzése, ha minden értéket másodpercekké konvertál az EXTRACT (EPOCH FROM.) Használatával. és keresse meg a különbséget az eredmények között; a két dátum közötti másodpercek száma érkezik. Ez figyelembe veszi a hónapok hónapjainak egyenlőtlen számát, az időzónák változásait és a nyári időszámítást. Amikor a dátumokat vagy dátumokat kivonja az idővel, a "-" operátor adja meg a napok számát (24 óra) és az órák / percek / másodpercek közötti értékeket, figyelembe véve ugyanazokat a tényezőket. Az életkor függvény visszaadja az évek, hónapok, napok és órák / percek / másodpercek számát, a mezők kivonását, majd a negatív értékek újraszámítását. E megközelítések közötti különbséget az alábbi lekérdezések szemléltetik. A bemutatott eredményeket az "US / Eastern" időzóna kapta; Két megadott dátum között átmenet volt a nyári időszámításra:
A függvény kivonat a dátum / idő értékek mezőiből származik, például év vagy óra. Itt a forrás egy időbélyegző érték. idő vagy intervallum. (A típus dátumának kifejezései az időbélyeg típusának felelnek meg, így ez a típus is megengedett.) A megadott mező az az azonosító, amellyel a megadott mezőt kiválasztja a forrásból. A kivonat funkció visszatér a dupla pontosságú értékekhez. Érvényes mezők:
Az időbélyeg értékek esetében ez a hónap napja (1 - 31), az intervallumértékek esetében - az évtized napjainak száma
Év, osztva 10 dow
A hét napja, vasárnaptól (0) szombatig (6) számítva
Vegyük észre, hogy a kivonatban a hét napjait nem ugyanúgy számozzuk meg, mint a to_char (.D ') függvényben. Doy
Az év napja (1 - 365/366)
Az időbélyegek időzónával történő értékei esetén ez a másodpercek száma 1970-01-01 00:00:00 UTC-ról (negatív lehet); a dátum és az időbélyeg értékek esetében ez a másodpercek száma 1970-01-01 00:00:00 helyi időtartammal és időközzel - az intervallum teljes időtartama másodpercekben
Módosítsa a korszak idejét a dátum / idő értékre az alábbiak szerint:
(Ezt a konverziót a to_timestamp függvény végzi.) Óra
Óra (0 - 23) izodow
A hét napja, hétfőtől vasárnapig (7)
Az eredmény csak vasárnapi eltérést jelent. Ez a számozás megfelel az ISO 8601 szabványnak
Év az ISO 8601 heti naptárban, amelyben a dátum esik (nem vonatkozik az intervallumokra)
Ez a mező nem volt a PostgreSQL-ben a 8.3 verzió előtt. ezredmásodperc
A másodperc törtrészének értéke 1 000 000 szorozva; vegye figyelembe, hogy ez magában foglalja az ezredmásodperceket
A másodperc törtrészének értéke 1000-gyel szorozva; vegye figyelembe, hogy ez egész másodpercet tartalmaz. egy perc
Perc (0 - 59) hónap
Az időbélyegértékek esetében ez az év (1-12) hónapszáma és az intervallum esetében - a hónapok fennmaradó része 12 (a 0-11 tartományban) osztva
Év negyedév (1-4), ami a második időpont
Másodpercek, beleértve a törtrész (0 - 59 [1]) időzónát
Az időzóna eltolása UTC-ből másodpercekben. A pozitív értékek megfelelnek az UTC időjárási időzónáinak és a nyugati negatív értékeknek. (Technikailag a Postgres Pro UT1-et használ, mivel a koordinációs másodperceket nem veszik figyelembe.) Timezone_hour
Az időzóna az időzóna_minute időzónában eltolva
Percek mező az időzónában eltolva
Év területén. Vegyük észre, hogy a 0. év nem volt, és ezt szem előtt kell tartanunk, kivonva BC korszakunkból.
A kivonat funkció elsősorban számítási célokra szolgál. A dátum / idő formázási funkciókat a 9.8.
A date_part függvény a szabványos SQL függvény kivonatának hagyományos Ingres egyenértékét emulálja.
Ne feledje, hogy itt a paramétermezőnek string értékűnek kell lennie, nem pedig névnek. A date_part függvény ugyanazokat a mezőket fogadja el, mint a kivonat.
A date_trunc függvény úgy működik, mint a számok csonkolása.
Itt az érték az időbélyeg vagy intervallum típusának kifejezése. (A dátum- és időtípusok értékeit automatikusan átváltják az időbélyegre és az intervallum típusokra.) A mezőparaméter meghatározza, hogy pontosan hogyan csökkenthető a továbbított érték. A visszatérési érték egy időbélyeg vagy intervallum típus lesz, és minden értéke kisebb, mint a megadott mező nulla lesz (vagy egy, ha napi vagy havi szám).
A paraméter mező a következő értékeket veheti fel: