Autor Zpráva
MilanJ
Profil
V db MySQL mám pole typu timestamp a potřebuji po načtení výsledku SQL dotazu porovnat současné datum s datumem v db (timestamo).
Použil jsem Date(YmjHis) < $radek["zacatek"], kde $radek["zacatek"] oznacuje pole db načtené pomocí $radek = mysql_fetch_array($vysledek_dotazu)

Jak správně zapsat porovnávání?
*Čvachta*
Profil *
Zkus jen

date();
MilanJ
Profil
Zkus jen

date();


Zkusil jsem napsalo mi to hlášku: Warning: Wrong parameter count for date() in /www/doc/www...
Hugo
Profil
Lepší je time(). Date slouží k formátování data.
MilanJ
Profil
Dobře, ale TIME() a pole typu TIMESTAMP přeci nejsou to samé, jak je můžu porovnávat?
MilanJ
Profil
Jak porovnáváte data Vy?
Hugo
Profil
Aha, teď jsem si pořádně přečetl dotaz.

Date('Y-m-d H:i:s') < $radek["zacatek"]

BTW: Na hodně tvých dotazů se perfektně hodí RTFM. Zkus občas místo diskuze použít manuál. Určitě najdeš odpověd podstatně rychleji.
MilanJ
Profil
Date('Y-m-d H:i:s') < $radek["zacatek"]

Asi jsem ti nenapsal srozumitelně... v db mám uloženo v poli typu TIMESTAMP datum (např. 20060323091243) a potřebuji ho porovnat se současným datem a časem. To Tvůj help nevyřeší.
S helpem máš samozřejmě pravdu, ale v PHP nejsem moc kovanej a o spoustě funkcí ani nevím, že existují.:-/
Hugo
Profil
Tak v tom případě musí fungovat toto

Date('YmdHis') < $radek["zacatek"]

Timestamp v sql nepoužívám, takže jsem si spletl formáty.
Hugo
Profil
Jinak, můžeš použít pro porovnávání i mysql, např.

IF(NOW()<`zacatek`, ...) AS `zacatek`
Tomik
Profil
MilanJ
(mktime(0, 0, 0, date("m") , date("d"), date("Y")) < $radek["zacatek"]

Ale nerozumím, proč do DB neukládáš datum ve tvaru DATETIME...
MilanJ
Profil
Podle mě bude problém ve formátu data. Použil jsem Date(YmjHis) a asi bych měl použít Date(YmdHis), to bude ono!
Tomik
Profil
MilanJ
Dobře, ale TIME() a pole typu TIMESTAMP přeci nejsou to samé, jak je můžu porovnávat?
Blbost... viz manuál:

Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).
(http://mirrors.inway.cz/manual/en/function.time.php)

Takže asi nejlíp to jde porovnávat takto:

time() < $radek["zacatek"]
Hugo
Profil
Tomik

Ale mktime vrací unixtimestamp, což není to samé jako timestamp v mysql.
Tomik
Profil
Hugo
Jejda, omluvička... No, nějak mi to po ránu nemyslí... :(
MilanJ
Profil
Hugo
IF(NOW()<`zacatek`, ...) AS `zacatek`
To mě nenapadlo. No jo, člověk se pořád učí. Díky

Tomik
Ale nerozumím, proč do DB neukládáš datum ve tvaru DATETIME...
Je to o tolik výhodnější? Já vím, zabere polovinu místa než TIMESTAMP, ale kromě velikosti ještě nějaká výhoda?
Tomik
Profil
No IMHO je to docela výhodné pro to porovnávání... :)

I když pravda, zas až tak veliký rozdíl v tom není.
MilanJ
Profil
Porovnává se jednodušeji než TIMESTAMP?
Když použiji správné formátování DATE(), funguje to dobře.:-)
Tomik
Profil
No, je to asi jedno, ale já se ve formátu RRRR-MM-DD HH:MM:SS lépe vyznám... ;)
MilanJ
Profil
To jo.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0