Autor | Zpráva | ||
---|---|---|---|
had Profil * |
#1 · Zasláno: 8. 3. 2009, 11:47:29
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 |
#2 · Zasláno: 8. 3. 2009, 13:42:33
„koncert 20090314143000 0“
co znamená ta 0 na konci? neměl by tam být čas do? |
||
TomášK Profil |
#3 · Zasláno: 8. 3. 2009, 13:49:15
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 |
#4 · Zasláno: 8. 3. 2009, 13:52:53
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 |
#5 · Zasláno: 8. 3. 2009, 14:07:19
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.
|
||
Časová prodleva: 15 let
|
0