[ konstantin @ 02.03.2004. 13:42 ] @
Iz neke arhive treba da pronadjem slogove koji zadovoljavaju odredjeni uslov ukljucujuci i datum i vrijeme tih dogadjaja. Upit je:

select * from pozivi where p_broj like '00%' and to_char(vrijeme_poziva, 'DD-MON-YY hh:mi:ss') as vrijeme between '22-FEB-04 01:30:00' and '23-FEB-04 15:00:00';

Upit se izvrsi, medjutim dobijem datume svih mjeseci koji pocinju sa 22 i 23 iz svih godina. Da je trazena tacnost na nivou dana ne bi bilo problema, ovako imam problem.
Koristim Oracle, sql 8.1.7.Pretpostavljam da je problem sa konverzijom datumskog polja VRIJEME_POZIVA, ali ukoliko neko moze da mi ponudi ispravnu sintaksu bio bih mu zahvalan!
[ Zidar @ 02.03.2004. 16:22 ] @
Oracle bi trebalo da moze da radi uporedjenje datuma bez konverzije. Izbaci konverziju i radi sa datumima direktno.
[ Raspucin @ 04.03.2004. 10:09 ] @
Citat:
konstantin:
select * from pozivi where p_broj like '00%' and to_char(vrijeme_poziva, 'DD-MON-YY hh:mi:ss') as vrijeme between '22-FEB-04 01:30:00' and '23-FEB-04 15:00:00';


Kao Sto covek pre mene rece poredi datume direktno. Ne znam da li vidis sta si ovde uradio:

to_char(vrijeme_poziva, 'DD-MON-YY hh:mi:ss') as vrijeme

kao sto se vidi tvoja kolona vrijeme je tipa varchar2, a ti trazis vrijeme

between '22-FEB-04 01:30:00' and '23-FEB-04 15:00:00'

sto znaci da ti daje ispravan rezultat a to su svi nizovi karaktera koji pocinju sa brojevima 22 i 23.

Citat:
konstantin:
Upit se izvrsi, medjutim dobijem datume svih mjeseci koji pocinju sa 22 i 23 iz svih godina. Da je trazena tacnost na nivou dana ne bi bilo problema, ovako imam problem.
Koristim Oracle, sql 8.1.7.Pretpostavljam da je problem sa konverzijom datumskog polja VRIJEME_POZIVA, ali ukoliko neko moze da mi ponudi ispravnu sintaksu bio bih mu zahvalan!


Ovo mozes da uradis na dva nacina:

Prvi je direkno sa datumima


select *
from pozivi
where p_broj like '00%' and
vrijeme_poziva between '22-FEB-04 01:30:00' and '23-FEB-04 15:00:00';

a drugi je kao sto si poceo samo ces jos da ubacis i funkciju to_date:


select *
from pozivi
where p_broj like '00%' and
to_date(to_char(vrijeme_poziva, 'DD-MON-YY hh:mi:ss'))
as vrijeme between '22-FEB-04 01:30:00' and '23-FEB-04 15:00:00';
[ konstantin @ 09.03.2004. 07:06 ] @
Odmah nakon postavljanja pitanja rijesio sam "problem" pa poslije nisam isao na forum.Zato Vam se izvinjavam obojici sto nisam ranije odgovorio.