Autor Zpráva
had
Profil *
ahoj,

mám problém. nedaří se mi pořád vymyslet jeden sql příkaz, který by zjistil, jaké akce z databáze právě probíhají.
akce mohou být různě dlouhé (buďto je jednodenní, nebo více než 6 hodinová).
Potřebuju vybrat právě probíhající akce. Tabulka vypadá nějak takhle:

(datum je ve formátu RRRRMMDDHHMMSS)

nazev od do
zkouška kapely 20090313000000 20090315000000
koncert 20090314143000 0

a já potřebuju vybrat všechny akce, které jsou 14. března... tedy chci, aby se mi vypsala zkouška kapely a koncert, protože probíhají zároveň, ale třeba 15. března aby se mi objevila už jenom ta zkouška...

nevíte někdo, jak ten sql příkaz sesmolit prosím? trápím se s ním už dlouho...
DíK za pomoc
Alphard
Profil
koncert 20090314143000 0
co znamená ta 0 na konci? neměl by tam být čas do?
TomášK
Profil
Předpokládám, že data jsou v tabulce jako DATETIME. Pokud to máš jako řetězec, tak stojí za to to předělat - ušetříš si tím spoustu práce. Druhá věc, kterou bych pozměnil, že ty data akcí budou opravdu od-do, tedy
koncert 20090314143000 200903141432359

A pak dotaz na právě probíhající akce bude jednoduchý:
SELECT * FROM akce WHERE od < NOW() AND do > NOW()
Alphard
Profil
TomášK
IMHO by se musel pozměnit, když by něco bylo odpoledne a dotaz by šel dopoledne, tak by to nevzalo, ale to jsou jen detaily
vše visí na striktním psaní od do
TomášK
Profil
Máš pravdu, viděl jsem na konci nuly a nabyl jsem dojmu, že tam je zadaná půlnoc, což je blbost :) Chtělo vše překonvertovat na DATE a dát tam <= respektive >=, pak by to snad fungovalo.

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: