Autor | Zpráva | ||
---|---|---|---|
FUYO Profil * |
#1 · Zasláno: 17. 8. 2015, 16:37:20
Dobrý den,
v databázi mám spoustu záznamů, kde ve sloupci mám datum_vlozeni (datetime), takže mám data např. (1, 'Nadpis 1', '2014-01-02 20:30:14', ''), (2, 'Nadpis 2', '2015-05-01 13:52:05', ''), (3, 'Nadpis 3', '2015-06-03 15:11:31', ''), (4, 'Nadpis 4', '2015-07-02 21:23:48', ''), (5, 'Nadpis 5', '2015-07-02 21:45:55', '') výsledky vypisuji $sql_celkem = dibi::fetchAll("SELECT * FROM zaznamy"); nyní bych potřeboval vypisovat pouze záznamy, ktrere byly přidány za měsíc červenec tedy 1.7.2015-31.7.2015, lze toho nějakým způsobem docílit? Děkuji. |
||
Keeehi Profil |
#2 · Zasláno: 17. 8. 2015, 16:42:59
Mělo by stačit přidat podmínku
WHERE datum_vlozeni BETWEEN '2015-07-01' AND '2015-07-31') |
||
FUYO Profil * |
#3 · Zasláno: 17. 8. 2015, 16:51:20
Keeehi:
funguje, děkuji |
||
Vachi Profil |
#4 · Zasláno: 17. 8. 2015, 17:15:57
Já to mám vyřešeno takhle
WHERE datum_vlozeni BETWEEN DATE_SUB(CURDATE(),INTERVAL (DAY(CURDATE())-1) DAY) AND LAST_DAY(NOW()) |
||
juriad Profil |
#5 · Zasláno: 17. 8. 2015, 17:23:12
Je-li to možné, je lepší rozsah vypočítat v PHP. A nejlépe mít funkci parametrizovanou rokem a měsícem, které defaultně budou odpovídat aktuálním. Je to univerzálnější, nezatěžuje to databázi a umožňuje to cachovat dotazy.
|
||
FUYO Profil * |
#6 · Zasláno: 17. 8. 2015, 18:05:36
Ještě bych měl takový technicky dotaz, když tedy budu mít '2015-07-01' AND '2015-07-31'
je to včetně toho 31.7 ? tedy i záznam přidaný 31.7.2015 23:59 ? |
||
juriad Profil |
Ne. Keeehi si zřejmě neuvědomil, že se jedná o
datetime a nikoli date .
Lepší podmínka je tedy: WHERE datum_vlozeni >= '2015-07-01' AND datum_vlozeni < '2015-08-01') Nebo do toho dotazu můžeš přidat i ty sekundy: WHERE datum_vlozeni BETWEEN '2015-07-01 00:00:00' AND '2015-07-31 23:59:59') Podívej se na ukázku. |
||
FUYO Profil * |
#8 · Zasláno: 17. 8. 2015, 19:11:10
juriad:
supr, moc děkuji za vysvětlení |
||
Keeehi Profil |
#9 · Zasláno: 17. 8. 2015, 19:38:11
juriad:
„Raději jsem je přidal i k tomu počátku, aby byla zachována symetrie.“ Hlavně se taky nemusí pro druhý údaj dopočítávat, který je to měsíc a rok a podle toho doplňovat poslední den. |
||
Časová prodleva: 9 let
|
0