Autor Zpráva
jaromir
Profil *
Zdravím, řeším problém s výpisem dat z DB podle datumu. Jak mám zvolit dotaz na databázi..pravděpodobně pomocí použití BETWEEN ale nechápu tu logiku. Díky za rady.

Dejme tomu, že mám v databázi tři sloupečky "zacatek_akce", "konec_akce" a "nazev_akce".
Do prvního sloupečku dám že akce začíná 1.3.2016, do druhého že akce končí 10.3.2016 a nazev třeba "Festival na kopci".
Pak přidám další akci, která bude začínat třeba 5.3.2016 a končit 9.3.2016 s názvem "Festival u vody".

Jak docílit toho aby se tyto akce vypisovaly jen ve dnech kdy se konají?
anonymníí
Profil *
jaromir:
Between ne, potřebuješ vypsat akce, které začaly dříve než dneska a současně skončí později než dnes.

SELECT zacatek_akce, konec_akce, nazev_akce FROM tabulka WHERE zacatek_akce <= '2016-02-15' AND konec_akce >= '2016-02-15'

Rovnítka vybírají i akce, které začínají nebo končí i dnes. Je podotýkám, že sloupec "zacatek_akce" a "konec_akce" má být typu date(time) a hodnota v nich tedy bude ve formátu, který uvádím já, ne v tom, co uvádíš ty. Pokud máš uložena data tak, jak uvádíš, změň typ sloupce, dokud ještě není pozdě.
jaromir
Profil *
jo, ty data jsem uvedl jen pro příklad, jinak je mám uložené jak píšeš. díky moc.
A ještě dotaz, pro tento typ tabulky je lepší MyISAM nebo InnoDB?
Martin2
Profil *
jaromir:
A ještě dotaz, pro tento typ tabulky je lepší MyISAM nebo InnoDB?
My ale nevíme, jaký typ tabulky používáš.

InnoDB se hodí pro databáze se složitější strukturou, kde se dají využít transakce, cizí klíče, kontrola integrity a obnovení. MyISAM je zase jednodušší, rychlejší pro čtení a s podporou fulltextu.

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