Autor Zpráva
Jannik
Profil *
Dobrý den,
vytvořil jsem si databázi se sloupce v datovém typu datetime, tedy obsahující hodnoty ve formátě např.: 2009-05-01 11:20:00
zajímalo by mne, jaký je správý způsob (tj. převod z počtu sekund do formátu např. y-m-j H:i:s) pro porovnání s nějakým časem pomocí php. Dříve jsem namísto datetime používal timestamp a tam to bylo jasné.




Momentálně to mám tak jak je to níže, je to tak správně?
$datetime_vypis=Date("Y-m-d H:i:s",(time()));
$vysledek = mysql_query("SELECT * FROM `hodiny` WHERE `datetime` > '$datetime_vypis'; ", $spojeni);
Alphard
Profil
Jannik:
Sloupec datetime je určený pro ukládání data a času. Prezentovaný formát je pouze způsob zobrazení. Váš dotaz lze přepsat takto:
where datetime > now()

now() je SQL funkce a formát nemusíte vůbec řešit.

Další funkce pro práci s časem naleznete v mauálu.

jaký je správý způsob (tj. převod z počtu sekund do formátu např. y-m-j H:i:s)
Je na to funkce FROM_UNIXTIME().
Jannik
Profil *
Alphard
Děkuji za reakci. Já ovšem chci, aby si mi zobrazovala data ještě i s časem poněkud starším, než je současnost, čili pak bych použil
např. where datetime > now()-60*60 ? (nejsem si jistý, jestli v tom sql mohu "počítat")
Alphard
Profil
Jannik:
where datetime > now()-60*60 ?
where datetime > date_sub(now(), interval 1 hour)

nebo
where datetime > now() - interval 1 hour
Kajman_
Profil *
Pokud si ale čas připravíte už v php a do dotazu ho vložíte jako v prvním příkladě, může mysql použít svoji cache na dotazy. Má to ovšem význam jen v případě, že se pak stejný dotaz vykonává vícekrát. Pokud bude každou sekundu jiný dotaz, tak už se to v malém provozu ani nevyužije.

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:

0