Niste prijavljeni

Dragi posjetioče, Dobrodošli na Otvoreni Forum - Novi Pazar. Ukoliko je ovo Vaša prva posjeta molimo vas pročitajte Pomoć. U pomoći je objašnjeno kako ovaj forum radi. Morate biti registrirani kako bi vidjeli sve teme i sve forume. Molimo vas da se registrirate ili da ovdje pročitate kako se registrirati. Ukoliko ste već registrirani molimo ulogirajte se ovdje.

Chonbey

Zlatna sredina

(10)

  • »Chonbey« je muško
  • »Chonbey« je autor ove teme

Postovi: 286

Datum registracije: 10.03.2004

Lokacija: US

  • Poruku poslati

1

Nedjelja, 22. August 2004

Ajde malo da treniramo SQL

Zaglavih na problemu, pa rekoh da vidim mozda ima kakvih pametnih ideja. :D

Treba da napisem SQL statement koji mi vraca rekorde unutar vremenskog perioda. Lako, reklo bi se. Problem je u tome sto je polje koje sadrzi vreme user-defined.

Format polja je HHMMSSMMDDYY (6 prvih polja je time, 6 narednih date), i glavni problem je u tome sto je tip polje float (da je char nekako bi se i izborio). Ide preko ODBC i treba da podrzava sve standardne baze (Oracle, SQL Server, DB2, ...)

Ne mogu da koristim stored procedure, mora preko jednog SQL statement-a.

Ideje ?
Solve it. Solve it quickly, right or wrong. If you solve it wrong, it will come back and slap you in the face, and then you can solve it right

Tulumba4All

Profesionalac

(10)

  • »Tulumba4All« je muško

Postovi: 700

Datum registracije: 04.09.2002

Lokacija: UK

  • Poruku poslati

2

Nedjelja, 22. August 2004

Ako je format polja HHMMSSMMDDYY i polje je float kako se predstavljaju podaci koji su npr 00:00:01 01-01-2001 ? Jel to znaci da je tvoj float 59010101 ?

Mislim da je ideja (bar za oracle) da tvoj vremenski period prebacis u string (za oracle TO_CHAR(%datum1%, 'HHMISSMMDDYY') ) pa onda taj string u numeric (TO_NUMBER(STRING)). To bi trebalo da radi.
... And Tulumba for all
[SIZE=1]If you can't convince them, confuse them.

A fanatic is one who can't change his mind and won't change the subject

[/SIZE]

Chonbey

Zlatna sredina

(10)

  • »Chonbey« je muško
  • »Chonbey« je autor ove teme

Postovi: 286

Datum registracije: 10.03.2004

Lokacija: US

  • Poruku poslati

3

Ponedjeljak, 23. August 2004

Citirano

Orginalno od Tulumba4All
Ako je format polja HHMMSSMMDDYY i polje je float kako se predstavljaju podaci koji su npr 00:00:01 01-01-2001 ? Jel to znaci da je tvoj float 59010101 ?


Ovako - 00:00:01 01-01-2001 bi bilo 1010101, dok bi 59010101 bilo ekvivalent za 00:00:59 01-01-01 (ocigledno ne znamo vek).

Zdravo sam se namucio ovde i izgleda da nema dobrog resenja. Na kraju sam napravio vrlo nezgrapan upit koji se svodi na to da se koristi ROUND i trunc-ovanje pomocu njega. Primera radi, godinu ekstraktujem kao

value - ROUND(value/100, 0, 1)*100

Pomocu ovoga, dobio sam strahovito komplikovan i ruzan upit koji ima oko 3000 karaktera (malo je falilo da probijem 4k limit)

Sad, ovo radi na SQL Serveru, jer ovakav ROUND odsece decimalni deo. Znas li mozda da li je isto ponasanje i na Oracle-u ?

Uh, ruznog li resenja ....
Solve it. Solve it quickly, right or wrong. If you solve it wrong, it will come back and slap you in the face, and then you can solve it right

Tulumba4All

Profesionalac

(10)

  • »Tulumba4All« je muško

Postovi: 700

Datum registracije: 04.09.2002

Lokacija: UK

  • Poruku poslati

4

Ponedjeljak, 23. August 2004

Ovo sto sam naveo u prethodnom postu bi trebalo da radi. Mislim da ne mozeš da napraviš generički sql koji će da radi na bilo kojoj bazi.
... And Tulumba for all
[SIZE=1]If you can't convince them, confuse them.

A fanatic is one who can't change his mind and won't change the subject

[/SIZE]

Social bookmarks