Zadejte hledaný výraz...

Vybrat každý druhý víkend / vypočítat délku výpadku

Bacon
verified
rating uzivatele
(2 hodnocení)
4. 12. 2011 21:32:47
Dobrý večer,
mám tu dva dotazy, se kterými si nevím rady, a tak doufám, že se najde někdo tak hodný a pomůže mi :)
1. Vybrat každý druhý víkend
V tabulce mám uložené datum ve formátu %Y-%m-%d %H:%i:%s (tedy např. 2011-12-04 21:25:00) a potřebuji získat údaje pro každou druhou sobotu od zadaného data, a to ještě navíc od 20.00 do 22.00 a také pro každou druhou neděli mezi 16.00 a 18.00 a dále mezi 20.00 a 22.00. Snažil jsem se zorientovat v MySQL Date and Time funkcích, ale moudrý z toho nejsem.
2. Zjistit délku výpadku
Jedná se o podobnou funkci, jakou má například monitoring hostingů. Potřebuji pro každý výpadek zjistit od kdy do kdy trval a také vypočítat dobu jeho trvání. Co mi tady ale nejde do hlavy, je, jak zjistit, kdy onen výpadek začal a kdy končí. Výpadek je charakterizován tím, že sloupec server_status nabývá hodnoty 0.
Struktura tabulky:
;
Díky za případnou pomoc a pokud jsem se zase vyjádřil jako Mongol a není z toho jasné, co chci, tak upřesním.
4. 12. 2011 21:32:47
https://webtrh.cz/diskuse/vybrat-kazdy-druhy-vikend-vypocitat-delku-vypadku/#reply704744
naniccz
verified
rating uzivatele
(3 hodnocení)
4. 12. 2011 22:49:38
ad 1:
---------- Post added 4.12.2011 at 22:52 ----------
ad 2
asi bude lepší to nenechávat je na databázi, ale udělat to v programu.
Tedy, v zadaném období si zjistit, jaké servery měly výpadkek (SELECT DISTINCT server_name FROM og_online_count WHERE server_status = 'down' AND datetime BETWEEN :zacatek AND :konec).
Potom pro každý server zvlášť si vybrat ty řádky kdy byl ve vpýadku, s tím, že začátek se pozná tak, že předchozí "meření" bylo ok, a současné už není.
4. 12. 2011 22:49:38
https://webtrh.cz/diskuse/vybrat-kazdy-druhy-vikend-vypocitat-delku-vypadku/#reply704743
Bacon
verified
rating uzivatele
(2 hodnocení)
4. 12. 2011 22:53:07
Paráda! Díky moc. Budu ještě muset zjistit, jestli chci sudý, nebo lichý týden. Tohle řešení mě vůbec nenapadlo, myslel jsem, že tam bude nějak figurovat přičítání 14 dnů :) Ještě jednou díky a dávám +1 :)
OK, díky i za to druhé řešení, pokusím se to promyslet, zítra se na to vrhnu :)
4. 12. 2011 22:53:07
https://webtrh.cz/diskuse/vybrat-kazdy-druhy-vikend-vypocitat-delku-vypadku/#reply704742
naniccz
verified
rating uzivatele
(3 hodnocení)
4. 12. 2011 22:56:46
Pokud to zavisi na zadanem datu, tak to bude vypadat bud jako
nebo
4. 12. 2011 22:56:46
https://webtrh.cz/diskuse/vybrat-kazdy-druhy-vikend-vypocitat-delku-vypadku/#reply704741
tm
verified
rating uzivatele
(5 hodnocení)
5. 12. 2011 11:34:40
Zkusím sem nahodit řešení druhého dotazu. Nevím, jak moc vhodná tato konstrukce je, nicméně funguje. Možná jde nějak zjednodušit.
Teorie je jednoduchá -> vybereme takové záznamy, které splňují server_status == 0, přičemž u předchozího záznamu je server_status == 1, tj. jedná se o záznamy oznamující počátek výpadku. K tomuto řádku pak vybereme nejbližší budoucí datum, u kterého je server_status == 1, tj. konec výpadku. Z těchto dvou hodnot pak už není problém vypočítat délku výpadku.
5. 12. 2011 11:34:40
https://webtrh.cz/diskuse/vybrat-kazdy-druhy-vikend-vypocitat-delku-vypadku/#reply704740
Pro odpověď se přihlašte.
Přihlásit