Autor Zpráva
r0me0
Profil
Zdravím,
chci si vybrat z tabulky tab_pristupy všechny záznamy, které mají dnešní datum. Sloupec pr_cas je DATETIME. Takže jsem si to chtěl převést funkcí DATE_FORMAT jen na den bez času, ale ten dotaz nefunguje, respektive nevybere ani jeden záznam.

SELECT pr_cas
FROM `tab_pristupy` 
WHERE DATE_FORMAT(pr_cas,'%Y-%m-%e') = CURRENT_DATE()


Když si nechám vypsat jen DATE_FORMAT(pr_cas,'%Y-%m-%e') vypíše to 2008-12-14 a když vypíšu CURRENT_DATE() vypíše to taky 2008-12-14. Kde by mohl být problém? Díky.
Taps
Profil
r0me0
zkus to takto
$sql=mysql_query("SELECT DATE_FORMAT(pr_cas,'%Y-%m-%e') AS cas FROM tab_pristupy WHERE pr_cas=NOW()");
while($hodnota=mysql_fetch_assoc($sql)){
echo $hodnota["cas"]."<br>\n";
}
r0me0
Profil
Taps
díky za odpověď, ale dotaz vrátil 0 záznamů. Funkce date vrací aktuální čas ve formátu rrrr-mm-dd hh:mm:ss, takže to ani fungovat nemůže , proto jsem předtím používal CURRENT_DATE()
bohyn
Profil
r0me0
DATE_FORMAT(pr_cas,'%Y-%m-%e') = CURRENT_DATE()
Staci misto = pouzit LIKE
Alphard
Profil
možná bych to řešil takhle:
where year(pr_cas) = year(now()) and dayofyear(pr_cas) = dayofyear(now())


je to sice dlouhé, ale logické a jednoduché, náročnost nemám zjištěnou
r0me0
Profil
Tak nakonec mi ten můj původní dotaz na hostingu funguje. Problém bude asi ve starší verz XAMPP. Díky za pomoc.
To, co navrhovali bohyn i Alphard taky funguje.
bohyn
Profil
r0me0
Problem je v tom ze CURRENT_DATE() vraci datovy typ datumu kdezto DATE_FORMAT() vraci retezec
Kajman_
Profil *
Osobně bych to zapsal takto nějak...

where pr_cas >= current_date() and pr_cas < date_add(current_date(), interval 1 day)


Není dobré pouštět funkci na nějaký sloupeček, když se dá napsat podmínka, kde se se sloupcem nemanipuluje.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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