Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

sql upit na osnovu datuma dd-mon-yy hh:mi:ss

[es] :: Oracle :: sql upit na osnovu datuma dd-mon-yy hh:mi:ss

[ Pregleda: 1982 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

konstantin

Član broj: 17262
Poruke: 130
*.com



Profil

icon sql upit na osnovu datuma dd-mon-yy hh:mi:ss02.03.2004. u 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!
02.03.2004. u 13:42 

Zidar
Canada

Član broj: 15387
Poruke: 2036
*.eqao.com



Profil

icon Re: sql upit na osnovu datuma dd-mon-yy hh:mi:ss02.03.2004. u 16:22
Oracle bi trebalo da moze da radi uporedjenje datuma bez konverzije. Izbaci konverziju i radi sa datumima direktno.
02.03.2004. u 16:22 

Raspucin
Ljubisa Punosevac
Java Programer
Salzburg, Austrija

Moderator
Član broj: 20699
Poruke: 181
*.rcub.bg.ac.yu

ICQ: 244452581


Profil

icon Re: sql upit na osnovu datuma dd-mon-yy hh:mi:ss04.03.2004. u 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';
04.03.2004. u 10:09 

konstantin

Član broj: 17262
Poruke: 130
*.com



Profil

icon Re: sql upit na osnovu datuma dd-mon-yy hh:mi:ss09.03.2004. u 07:06
Odmah nakon postavljanja pitanja rijesio sam "problem" pa poslije nisam isao na forum.Zato Vam se izvinjavam obojici sto nisam ranije odgovorio.
09.03.2004. u 07:06 

[es] :: Oracle :: sql upit na osnovu datuma dd-mon-yy hh:mi:ss

[ Pregleda: 1982 | Odgovora: 3 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.