• 8 odgovora
  • 5.024 pregleda
Kako napisati sledeci upit 07.07.2006. u 17:50 · pre 247 meseci #1
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.
Re: Kako napisati sledeci upit 07.07.2006. u 18:16 · pre 247 meseci #2
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.
Potpis
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
Re: Kako napisati sledeci upit 07.07.2006. u 18:22 · pre 247 meseci #3
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.
Re: Kako napisati sledeci upit 07.07.2006. u 18:47 · pre 247 meseci #4
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.
Potpis
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
Re: Kako napisati sledeci upit 07.07.2006. u 21:18 · pre 247 meseci #5
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
Re: Kako napisati sledeci upit 08.07.2006. u 12:39 · pre 247 meseci #7
Ako bas hoces dodatno, onda prosto u postojecu tabelu dodaj jos jedno polje u koje ces da upisujes datum i vreme u timestamp formatu.
Re: Kako napisati sledeci upit 10.07.2006. u 08:06 · pre 247 meseci #8
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;
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Re: Kako napisati sledeci upit 21.07.2006. u 12:55 · pre 246 meseci #9
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)
Potpis
Slabo koje drvo sam mogao videti, ali sam poznavao celu šumu koju. Moja lična
apstrakcija izmedju specifikacije i generalizacije.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme