• 3 odgovora
  • 6.284 pregleda
sql upit na osnovu datuma dd-mon-yy hh:mi:ss 02.03.2004. u 13:42 · pre 275 meseci #1
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!
Re: sql upit na osnovu datuma dd-mon-yy hh:mi:ss 04.03.2004. u 10:09 · pre 275 meseci #3
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';
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme