Autor | Zpráva | ||
---|---|---|---|
r0me0 Profil |
#1 · Zasláno: 21. 12. 2008, 15:59:38
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 |
#2 · Zasláno: 21. 12. 2008, 16:58:50
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 |
#3 · Zasláno: 22. 12. 2008, 12:41:41
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 |
#4 · Zasláno: 22. 12. 2008, 13:13:45 · Upravil/a: bohyn
r0me0
„DATE_FORMAT(pr_cas,'%Y-%m-%e') = CURRENT_DATE()“ Staci misto = pouzit LIKE |
||
Alphard Profil |
#5 · Zasláno: 22. 12. 2008, 13:20:05 · Upravil/a: Alphard
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 |
#6 · Zasláno: 22. 12. 2008, 14:46:40
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 |
#7 · Zasláno: 22. 12. 2008, 15:05:53
r0me0
Problem je v tom ze CURRENT_DATE() vraci datovy typ datumu kdezto DATE_FORMAT() vraci retezec |
||
Kajman_ Profil * |
#8 · Zasláno: 23. 12. 2008, 12:49:33
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. |
||
Časová prodleva: 15 let
|
0