Autor Zpráva
wolf_2006
Profil *
Ahoj,
mám tabulku, kam ukládám každých 15 min údaje z plc (podle ID, Datum, Vyrobeno, ID_Mista ). Pole datum ukládá datum i čas.
Občas se stane, že se záznam neuloží (problém s internetem, nedostupnost DB na hostingu ...) a já bych potřeboval nějak zjistit a
vypsat vypsat časy,pro které chybí záznam.
Doufám, že jsem to popsal srozumitelně :)
jefitto44
Profil
Môžeš si to súčasne ukladať do nejakého .txt súboru a potom porovnávať
Str4wberry
Profil
1) Můžete si vytvořit cyklus s krokem 15 minut a pro každý datum a čas kontrolovat, jestli pro něj existuje záznam. Třeba s nějakou časovou tolerancí několika minut.

Pokud by to bylo pomalé, mohl by se nejdřív pro odhad udělat součet záznamů za den/týden/měsíc a jednotlivé záznamy kontrolovat až v momentě, kdy by neseděl ten součet.

2) Další možnost by byla v momentě vložení záznamu zkontrolovat, jestli je předcházející záznam přibližně 15 minut starý. Kdyby ne, znamená to, že nějaký záznam chybí.

3) Také by šlo CRONem každých 15 minut kontrolovat, jestli přibyl záznam.
Kajman
Profil
wolf_2006:

Možná bych si udělal pomocnou tabulku s časovými intervaly, kde se záznam očekává.

Např.
od                   do
2014-11-19 13:00:00  2014-11-19 13:14:59
2014-11-19 13:15:00  2014-11-19 13:29:59
...

Pak bych zkusil ke každému řádku (v potřebném intervalu) najít počet uložených údajů. Něco jako

SELECT p.od,
       p.do,
       Count(u.datum) pocet,
       Min(u.datum)   prvni,
       Max(u.datum)   posledni
FROM   pomocna p
       LEFT JOIN udaje u
              ON u.datum BETWEEN p.od AND p.do
WHERE  p.od BETWEEN '2014-11-01' AND '2014-11-30 23:59:59'
GROUP  BY p.od,
          p.do
HAVING pocet != 1
ORDER  BY p.od

Pokud jsou časy v časové zóně, kde se přechází na letní čas, nebude tato kontrola při změně času funkční.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: