[ toocold @ 07.07.2006. 17:50 ] @
Imam sledeci problem.
Jedna tabela u bazi podataka ima datum kao posebnu kolonu i vreme kao posebnu kolonu.
Kako izgleda upit koji ce da vrati sve podatke npr:od 1.1.2006 od 06:00h do 20.1.2006 do 23:00.

Naravno ove vrednosti unosi korisnik, meni treba samo upit. Umori se lupajuci glavu.

Unapred hvala svima.
[ NikolaVeber @ 07.07.2006. 18:16 ] @
Promeni nacin cuvanja podataka, cuvaj timestamp. Osim ako nije neophodno ovako cuvati, mada je kolicina informacija ista, samo je baratanje istima teze, tako da ne vidim zasto bi bilo neophodno.
[ toocold @ 07.07.2006. 18:22 ] @
Ma nisam ja pravio bazu, a ako bi to promenio morao bi da menjam i pola apikacije, tako da je bolje resenje da nekako napisem upit.
[ NikolaVeber @ 07.07.2006. 18:47 ] @
300 je stepeni i ne radi mi mozak, ali ono sto bih ja uradio je sledece:

napravi novu tabelu sa poljima ID i Timestamp i u nju upisi izracunate vrednosti timestampa. To radi skripta od 4 reda i posle nema vise zezanja, radis join i gotovo.
[ jajo @ 07.07.2006. 21:18 ] @
ovisi koja je baza i u koji tip polja su spremani podaci, ovak otprilike bi to izgledalo u oracle-u:

select to_char(prvidio, 'ddd.mm.yyyy')||' '||drugidio datum
from tablica

uglavnom u cem god radis pretvori i prvi i drugi u character to concateniraj i onda pretvori u datum
[ NikolaVeber @ 07.07.2006. 22:32 ] @
I to nije los predlog. Mada mislim da je dodatna tabela performantnije resenje.
[ broker @ 08.07.2006. 12:39 ] @
Ako bas hoces dodatno, onda prosto u postojecu tabelu dodaj jos jedno polje u koje ces da upisujes datum i vreme u timestamp formatu.
[ Dejan Topalovic @ 10.07.2006. 08:06 ] @
Vec su ti kolege rekli okvirno kako to da uradis, a ja cu ti samo jos potvrditi.
Imas dvije opcije:
1. da dodas novu kolonu tipa TIMESTAMP u postojecu tabelu i da preostale dvije kolone (datum i vreme) ignorises (barem u novijim aplikacijama, koje pises).
2. da pomocu funkcija TO_CHAR i TO_DATE izvuces potrebno vrijeme:
- pretpostavimo da ti je kolona datum tipa DATE u formatu dd.mm.yyyy., a vreme tipa VARCHAR (ili VARCHAR2) u formatu hh24:mi:ss, pa imamo slijedeci upit:
Code:
SELECT TO_DATE(TO_CHAR(t.datum,'dd.mm.yyyy.')||' '||t.vreme, 'dd.mm.yyyy. hh24:mi:ss') FROM tvoja_tabela t;
[ dsmr @ 21.07.2006. 12:55 ] @
Koliko ja vidim tebi je problem dosta prost: u where klauzuli stavis uslov po datumu AND uslov po vremenu
select * from tvoja_tabela where (datum>datum_od and datum <datum_do) and (vreme>vreme_od and vreme<vreme_do)