Autor | Zpráva | ||
---|---|---|---|
Jannik Profil * |
#1 · Zasláno: 17. 7. 2009, 00:50:34
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 |
#2 · Zasláno: 17. 7. 2009, 01:05:30
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 * |
#3 · Zasláno: 17. 7. 2009, 01:10:55
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 |
#4 · Zasláno: 17. 7. 2009, 01:21:54 · Upravil/a: Alphard
Jannik:
„where datetime > now()-60*60 ?“ where datetime > date_sub(now(), interval 1 hour) nebo where datetime > now() - interval 1 hour |
||
Kajman_ Profil * |
#5 · Zasláno: 17. 7. 2009, 08:58:47
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.
|
||
Časová prodleva: 15 let
|
0