Autor | Zpráva | ||
---|---|---|---|
lesiak307 Profil |
#1 · Zasláno: 19. 5. 2010, 16:46:08 · Upravil/a: lesiak307
Dobrý deň,
prosím Vás, mám taký malý problém, možno začiatočnícky... Konkrétne, ak dám datum >= SUBDATE ... tak to ide, ale ja by som potreboval len =. Pri >= vyberie z tab. data za včerajší deň a za dnešný deň. Ja chcem len za včerajší deň no keď dám len = tak nevapíše žiadnu chybu, ale z tab. nevyberie žiadne daba. Dúfam, že som to dobre opísal. SELECT * FROM pristupy WHERE datum >= SUBDATE(curdate(), INTERVAL 2 DAY) ORDER BY datum desc |
||
Časová prodleva: 5 dní
|
|||
lesiak307 Profil |
#2 · Zasláno: 24. 5. 2010, 18:03:38
Ďakujem za rady, nestíham ich čítať :(
|
||
Kajman_ Profil * |
#3 · Zasláno: 25. 5. 2010, 01:00:17
WHERE datum >= SUBDATE(curdate(), INTERVAL 2 DAY) AND datum < SUBDATE(curdate(), INTERVAL 1 DAY) |
||
lesiak307 Profil |
#4 · Zasláno: 25. 5. 2010, 09:45:35 · Upravil/a: lesiak307
Ďakujem... takže som to skúšal. Nakoniec som to musel upraviť:
WHERE datum >= SUBDATE(curdate(), INTERVAL 1 DAY) AND datum < curdate() Takže ak som pochopil, takto sa to neda? : WHERE datum = SUBDATE(curdate(), INTERVAL 1 DAY) ,čiže celkovo v podmienke SQL sa nezapisuje = ? |
||
Kajman_ Profil * |
#5 · Zasláno: 25. 5. 2010, 10:02:27
Když si do sloupce datum bude ukládat datum, tak rovnítko můžete použít. Podle popisovaného chování dotazů tam ukládáte datum i s časem. Proto se i vypočtené datum převede na datetime a pak samozřejmě neplatí, že např. '2010-05-24 09:45:35'='2010-05-24 00:00:00'
Takový sloupec se dá ořezat jen na datum díky date(datum), ale z výkonostního hlediska bývá nejlepší napsat podmínku where datum>='2010-05-24' and datum<'2010-05-25' Tam může databáze využít případné indexy a když se předpočítá chtěné datum takto mimo sql, tak se může využít i sql cache. |
||
lesiak307 Profil |
#6 · Zasláno: 26. 5. 2010, 22:45:13
Ďakujem. Asi to bola primitívna otázka, ale čo už :)
|
||
Časová prodleva: 14 let
|
0