|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Funkce | Návratový typ | Popis |
|---|---|---|
| age (timestamp, timestamp) age (timestamp) |
interval (v obou případech) | čas mezi dvěma datumy, v případě použití jen jedné hodnoty se vrací čas (interval) do položení dotazu |
| current_date current_time current_datetime |
date time with time zone timestamp with time zone |
aktuální čas (na PostgreSQL server), datum a časové razítko (datum+čas), v posledních dvou případech včetně časové zóny |
| date_part(text, timestamp/interval) | double precision | Podle položky text (millennium, century, decade, year, quarter (řtvrtletí), month, week, day, dow (day of week = den týdne), minute, second, milliseconds, micoseconds, timezone, timezone_hour, timezone_minute) vrátí příslušnou část časového údaje jako číslo. |
| date_trunc(text, timestamp) | timestamp | Zaokrouhlení, parametr text je stejných hodnotot, jako v případš date_part |
| extract(text from timestamp/interval) | double precision | Ekvivalentní funkce vůči date_part |
| isinfinite(timestamp/interval) | boolean | Test, zda-li timestamp, nebo interval, je končný. |
| localtime localtimestamp |
time timestamp |
Funkce podobne current[_???] |
| now() | timestamp with time zone | Aktuální timestamp, funkce je ekvivalentní current_datetime, má kratší zápis a často se používá pro vložení aktuálního datumočasového razítka k editacím článků a komentářů v redakčních systémech |
| timeofday() | text | aktuální datum a čas |
| overlaps | boolean | Ověření, zda se dva datumové intervaly překrývají |
Příklady (nad tabulkami vytvořenými v 7. lekci tohoto seriálu):
PostgreSQL server umí v případě potřeby posouvat datum/čas dle potřeby aktuální časové zóny (jejich seznam je k nalezení zde) přidáním direktivy AT TIME ZONE 'xxx'. Zápis je například takovýto: SELECT NOW() AT TIME ZONE 'CCT';.
Pod ošklivým nadpisem se skrývají operátory a funkce pro práci s hodnotami síťových adres uložených v PostgreSQL tabulkách. Z operátorů jsou přítomny pouze operátory pro porovnávání, tedy žádný součet, součin, rozdíl, či podíl, ale pouze porovnávání hodnot <, >, =, <=, >=, k nimž přibyly 4 operátory s následujícím zápisem a významem:
Pozor: porovnávají se pouze IP adresy, které nemusí vúbec souviset se skutečnou lokací počítačů, tzn. že dvě lokální sítě s adresací například 127.xxx.yyy.zzz mohou být za různými přesměrováními (proxynami) a přesto příslušnost počítače z jedné sítě může být vyhodnocena jako pravdivá v druhé síti. Oparátory >>, >>=, <<= a << nefungují na Mac adresy.
Funkcí pro práci se síťovými adresami v PgSQL serveru je malé množství, proto zde budou uvedeny všechny.
| Funkce | Návratový typ | popis |
|---|---|---|
| broadcast(inet) | inet | Vysílací adresa |
| host(inet) | text | IP adresa jako text |
| masklen(inet) | integer | délka síťové masky |
| set_masklen(inet, integert) | inet | nastavení délky síťové masky |
| netmask(inet) | inet | získání síťové masky |
| network(inet) | cidr | získání IP adresy bez síťové masky |
| text(inet) | text | IP adresa a délka síťové masky jako text |
| abbrev(inet) | text | Zkrácená adresa a délka síťové masky jako text |
| trunc(macadr) | macadr | Nastaví poslední 3 byty mac adresy na 00 |
Práci s IP adresami lze potřebovat napříklat při tvorbě redakčního systému (ano, autor je webař a má webařské uvažování), aby bylo možné zakázat IP adresy (jsou-li pevné), z nichž přichází třeba flamer. Protože v tabulkách, které které byly zatím pro tento seriál připraveny a jsou ke stažení u 7 dílu síťová typy nebyly zavedeny, budou příklady bez jejich výběru z databáze:
V 5. díle seriálu byly představeny geometrické typy, které PostgreSQL server poskytuje. Spolu s nimi byly ukázány i některé funkce, které jsou použitelné při práci s těmito typy (jednalo se například o funkce popen(), isopen). Funkcí a operátorů je mnohem více, vzhledem k tomu, že by nebylo vhodné, aby v tomto místě byla dlouhá tabulka s jejich názvy, bude čtenář laskavě odkázán na originální dokumentaci, kde najde jejich výčet a zde bude uvedeno pouze několik příkladků použití. Funkce a operátory jsou rozřazeny do 3 skupin, operátory (nejrůznější způsoby porovnávání pozic objektů a případně jejich změny), funkce (testy otevřenosti a uzavřenosti, otevření a uzavření polygonů silou a získání rozměrů) a konverzní funkce (převody mezi jednotlivými geometrickými typy). Protože, podobně jako síťovéhodnoty, nejsou geometrické typy v příkladových tabulkách definovány, budou do příkladů zadávány přímo hodnoty a ne názvy sloupců. Jak již bylo předestřeno dříve, nejedná se o příliž často používané typy, proto je lze trochu "odbýt". Tedy pokud někdo ze ctěných čtenářů zná aplikace, které tyto typy používají, nechť na ně autora upozorní (autora napadlo jen uložení SVG entit).
Příklady:
Těch několik příkládků, které jsou zde uvedeny není vyčerpávajících, ale jak jsem napsal, geometrické typy se moc nepoužívají.
Tento díl je trochu kratší a snad trochu jinak psaný, než minulé dva. V příštím díle bude probráno malinko složitější téma a to výběr dat pomocí regulerních výrazů, které jsou samy o sobě téma na seriálek.
|
Nejsou žádné diskuzní příspěvky u dané položky. Příspívat do diskuze mohou pouze registrovaní uživatelé. | |
18.6.2013 7:01 /MaReK Olšavský
Ač se to zdá neuvěřitelné, případ SCO vs. IBM je otevřený. Znovu jej otevřel soud v Utahu, na žádost ještě stále „kopající“ SCO Group. O výsledku případu je těžké polemizovat. Kolem Linuxu se točí velké množství peněz a kdyby dovedlo SCO vybírat poplatky jen za komerční nasazení, možná by mělo příjmy srovnatelně s Red Hatem.
Přidat komentář
18.6.2013 7:01 /MaReK Olšavský
Přehrávač Songbird, vyvíjený nad jádrem Gecko, nikdy výrazně neprosadil a od roku 2010 není vyvíjen pro Linux. Eric Wirttman oznámil ukončení projektu k 28. červnu. Zvedne někdo hozenou rukavici, nebo skončí Songbird na smetišti zapomenutých projektů?
Komentářů: 1
17.6.2013 6:54 /MaReK Olšavský
Velký přínos pro tržní podíl MariaDB bude znamenat Red Hat Enterprise Linux, který je dalším řadě distribucí přecházejících od MySQL na MariaDB. Vývojáři MariaDB získají, díky síle Red Hatu, významnou pozici na trhu databází.
Přidat komentář
17.6.2013 6:54 /MaReK Olšavský
Nedlouho po vydání Debianu 7 vychází upgradovaný Debian 7.1, který přináší bezpečnostní opravy. Vydání je určené jen pro prvotní instalaci, updaty z repozitářů již problémy řešily.
Přidat komentář
14.6.2013 7:16 /MaReK Olšavský
Příjemnou zprávou ze sousedního Německa je oficiální odmítání softwarových patentů v německém parlamentu (Bundestagu). Při síle Německa v EU a světě jde o výrazný posun na cestě k jejich zabránění. Méně příjemnou je zamítnutí přechodu Berlína na GNU/Linux (alespoň prozatím, třeba se časem ledy pohnou).
Přidat komentář
13.6.2013 7:13 /MaReK Olšavský
Jim Whitehurst, CEO Red Hatu, vysvětloval na Red Hat Summitu, že svobodný software není jen o ceně, ale především je hlavním nositelem inovací. Mnoho zajímavých inovací určitě přinese i připravovaný RHEL 7, ale desktopové uživatele bude nejspíše nejvíce zajímat změna desktopu na GNOME 3 Classic mode.
Přidat komentář
13.6.2013 7:13 /MaReK Olšavský
Vývoj Waylandu bohužel nepokračuje tak, jak by bylo potřeba a někteří vývojáři ztrácí motivaci pro další práci. Problémem je testování a připravenost navazujícího software (Cairo) a chyby v potřebných ovladačích (Mesa).
Komentářů: 1
12.6.2013 7:11 /MaReK Olšavský
Na stránkách LinuxInsider vyšel rozhovor s Danielem Robbinsem, jenž byl zakladatelem distribuce Gentoo. Gentoo vytvořil během své práce na místě administrátora univerzity v Novém Mexiku a dnes je aktivní jako komunitní manager projektu Zenoss.
Přidat komentář
18.6.2013 22:21 /
Petr Ježek
???
17.6.2013 18:24 /
Karel Belunek
Super!!!
16.6.2013 14:32 /
Petr Ježek
jeden ztratil
12.6.2013 13:39 /
Petr Ježek
E17
10.6.2013 13:31 /
Petr Ježek
Lépe?