Autor Zpráva
lesiak307
Profil
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
lesiak307
Profil
Ďakujem za rady, nestíham ich čítať :(
Kajman_
Profil *
WHERE datum >= SUBDATE(curdate(), INTERVAL 2 DAY) AND  datum < SUBDATE(curdate(), INTERVAL 1 DAY)
lesiak307
Profil
Ď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 *
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
Ďakujem. Asi to bola primitívna otázka, ale čo už :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0