Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Selektovati vrijeme u bazi koje je najblize aktuelnom? Pomoc!

  • 13 odgovora
  • 5.457 pregleda

Najnovija ↓

Selektovati vrijeme u bazi koje je najblize aktuelnom? Pomoc! 30.10.2007. u 19:34 · pre 231 mesec #1
Dakle ovako,

treba mi pomoc oko upita. U bazi imam tabelu koja ima polje "vrijeme" i polje "naziv". Vrijeme je definisano kao TIME a naziv kao text.

Moze li mi ko pomoci oko upita, tj. kako uzeti najblize vrijeme trenutnom?

Primjer: Ako je trenutno vrijeme 18:00 kao uzeti iz baze red koji ima vrijeme koje je najblize trenutnom?


Hvala.
Re: Selektovati vrijeme u bazi koje je najblize aktuelnom? Pomoc! 30.10.2007. u 20:13 · pre 231 mesec #3
Hvala na odgovoru, ali stvar je malo komplikovanija.

Da bi pokusasao da vam objasnim uzecu primjer TV programa.

Ako neka emisija pocinje u 18:00 sati, zatim sledeca poslije nje u 18:30, trenutno vrijeme je 18:18 (na primjer) - zelim da dobijem informaciju kao trenutno na programu je: (i ime emisije koja je pocela u 18:00). Da li to znaci da samo treba da uzmem prvo vrijeme koje je <= sa current time?

Sta znaci malo aritmetike sa datumima? Da ako je npr. 00:30 trenutno. a prva prosla emisihja prosli dan 23:30, da oduzimam dan pa...

Molim Vas da mi malo samo pojasnite stvar.

Hvala!
Re: Selektovati vrijeme u bazi koje je najblize aktuelnom? Pomoc! 31.10.2007. u 01:42 · pre 231 mesec #6
Mislim da bi ti onda ovo jablanovo rešenje odgovaralo. "Aritmetika" bi ti trebala ako ti je važno da najbliže vreme bude najbliže u apsolutnom odnosu, dakle nebitno da li najbliži prošli trenutak ili najbliži budući trenutak. Mada čini mi se da bi i ovo moglo lako da se reši koristeći apsolutnu razliku tih vremena. Nešto tipa ORDER BY ABS(TIME()-t1.vreme) uz TOP 1. Koliko mi je poznato većina servera datumsko polje i čuva kao neku float/double vrednost.
Re: Selektovati vrijeme u bazi koje je najblize aktuelnom? Pomoc! 31.10.2007. u 15:10 · pre 231 mesec #7
Ja sam probao tako nesto, ali mi za neke dane izadje greska tipa da izabere emisiju koja jos nije ni pocela pa kaze "Trenutno na programu - pa emisija koja je sledeca tj nije jos pocela. Da bi vam jos blize primakao dacu jos jedan primjer:

Ovo su podaci u bazi cija su polja definisana kao DATE, TIME, TEXT

Kanal BBC

2007-11-01 09:00:00 A YEAR AT KEW
2007-11-01 09:30:00 WILDLIFE SPECIALS: ELEPHANTS - SPY IN TH
2007-11-01 10:30:00 KEEPING UP APPEARANCES
2007-11-01 11:00:00 ONLY FOOLS AND HORSES
2007-11-01 11:30:00 NEXT OF KIN
2007-11-01 12:00:00 ANTIQUES ROADSHOW
2007-11-01 13:00:00 HETTY WAINTHROPP INVESTIGATES
2007-11-01 14:00:00 HOW I MADE MY PROPERTY

Kanal Extreme Sport

2007-11-01 10:00:00 MotoGP MotoGP
2007-11-01 11:00:00 MotoGP MotoGP
2007-11-01 12:00:00 MotoGP MotoGP
2007-11-01 13:00:00 MotoGP MotoGP
2007-11-01 14:00:00 TIMBERSPORTS SERIES
2007-11-01 14:30:00 TIMBERSPORTS SERIES
2007-11-01 15:00:00 Strongest Man
2007-11-01 16:00:00 Football

Kanal Rai Uno

2007-11-01 09:00:00 Occhio alla spesa
2007-11-01 09:25:00 Che tempo fa
2007-11-01 09:30:00 Tg1
2007-11-01 10:00:00 La prova del cuoco
2007-11-01 11:30:00 TELEGIORNALE
2007-11-01 12:00:00 Tg1 Economia
2007-11-01 12:10:00 Festa Italiana Storie
2007-11-01 13:50:00 Festa italiana
2007-11-01 14:15:00 La vita in diretta

Treba mi upit koji bi vratio trenutno na TV-u za 11:45 sati sledece:

BBC 2007-11-01 11:30:00 NEXT OF KIN
Extreme Sport 2007-11-01 11:00:00 MotoGP MotoGP
Rai Uno 2007-11-01 11:30:00 TELEGIORNALE

I sta ako bi bio prvi prosli dan ranije tj. ako trazim vrijeme za 00:30, a prvi prosli je predhodnog dana u 23:30?

Molim vas napisite neki upit koji bi vratio nesto ovako, posto sam ja pokusavao i dobro mi radi za neka vremena, a za neka mi ne ispisuje ispravno. To mi nije dovoljno.

Hvala jos jednom.
Re: Selektovati vrijeme u bazi koje je najblize aktuelnom? Pomoc! 31.10.2007. u 15:19 · pre 231 mesec #8
Kapiram šta hoćeš, koristim jedan takav sajt sa programima ovde u Češkoj.

Rešenje je nešto na foru:
Code:

TOP 1 ... WHERE vreme < NOW ... ORDER BY vreme DESC -- emisija u toku
UNION
... WHERE vreme > NOW AND vreme < SUTRAUJUTRU... ORDER BY vreme ASC -- emisije u toku ostatka dana.
Re: Selektovati vrijeme u bazi koje je najblize aktuelnom? Pomoc! 31.10.2007. u 15:41 · pre 231 mesec #10
Brate, nemam MySQL pri ruci. Trebalo bi da je nešto na foru:
Code:

(SELECT * FROM program
WHERE vreme < NOW()
ORDER BY vreme DESC
LIMIT 1)
UNION
(SELECT * FROM program
WHERE vreme BETWEEN (NOW() AND ADDTIME(NOW(), '12:00:00')) <= nisam siguran kako dodaješ 12 sati na vreme u MySQL, pogledaj help
ORDER BY vreme)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme