Exportovat data podle datumu vytvoření

vanaveno
Člen | 144
+
0
-

Ahojte, mám vytvořený filtr na export dat, potřeboval bych exportovat data podle datu vytvoření. V databázi mám vytvořenou tabulku update_at ve formátu 2020–03–11 15:58:13. Bylo by možné vyfiltrovat data třeba jen podle dne vytvoření? Tohlemi nefunguje
$selection = $selection->where(‚:prices.update_at = ?‘, 2020–03–11);

Díky

Mysteria
Člen | 797
+
0
-

Nefunguje ti to protože databáze ti tam automaticky doplní půlnoc, tzn. 2020–03–11 00:00:00 a takový čas tam asi nemáš. Použij třeba ->where(':prices.update_at BETWEEN ? AND ?', '2020–03–11', '2020–03–12')

Editoval Mysteria (11. 3. 2020 20:46)

vanaveno
Člen | 144
+
0
-

Mysteria napsal(a):

Nefunguje ti to protože databáze ti tam automaticky doplní půlnoc, tzn. 2020–03–11 00:00:00 a takový čas tam asi nemáš. Použij třeba ->where(':prices.update_at BETWEEN ? AND ?', '2020–03–11', '2020–03–12')

Jo to funguje, akorát já to musím pořešit jinak, každopádně díky

Mysteria
Člen | 797
+
+3
-

Když si nebudu brát ten mínus osobně, tak použití BETWEEN nebo > a < bude vždycky rychlejší, protože při použití funkce DATE (a jakékoliv jiné) nemůže databáze použít indexy. Na 100 řádcích to nepoznáte, ale zkuste si to na 100 milionech záznamech :) Viz https://stackoverflow.com/…tter/3281228#…

CZechBoY
Člen | 3608
+
+1
-

Proč bys nemohl použít index na funkci? To že to neumí MySQL neznamená že to neumí nikdo. např. odkaz do dokumentace postgresu https://www.postgresql.org/…ctional.html

Mysteria
Člen | 797
+
+1
-

Určitě to některé databáze umí, ale dokud stále ještě platí databáze = MySQL / MariaDB, tak jsem to explicitně nezmiňoval.