Avatar billede cronick Nybegynder
16. juli 2007 - 01:18 Der er 8 kommentarer og
2 løsninger

hente fra mysql hvor dato ikke er samme dag ud fra time()

Hej,

Jeg har cellen "dato" i min tabel, som indeholder et længere tal, genereret med time(). Hvordan laver man nemmest en metode i sin WHERE, som forudsætter, at datoen (ud fra cellen "dato") ikke er den nuværende dato? I ren og skær PHP kunne det jo f.eks. gøres med: WHERE date("d/m/Y") != date("d/m/Y", (cellen dato)), men kan jo selvfølgelig ikke bruges i MySQL.

- På forhånd tak!
Avatar billede nielle Nybegynder
16. juli 2007 - 06:50 #1
F.eks. sådan?

... WHERE date(dato) <> curdate()

Læs mere om MySQL's dato-funktioner her:

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
Avatar billede cronick Nybegynder
16. juli 2007 - 11:17 #2
Jeg kan ikke lige få dette til at virke:
WHERE (bpi.id IS NULL) OR date(bpi.dato) <> curdate()

Selvom den ikke giver en fejl - den henter bare ikke noget. Er du sikker på at date() kan bruges, på det genererede tal, af time() ?
Avatar billede nielle Nybegynder
16. juli 2007 - 19:38 #3
Det skulle jeg da mene ... men jeg kan bestemt godt tage fejl.

Hvad giver denne?

SELECT date(bpi.dato) AS kunDato FROM dinTabel
Avatar billede cronick Nybegynder
16. juli 2007 - 19:47 #4
Det giver ikke noget (altså ingen fejl, men bare ingenting).. :/
Avatar billede nielle Nybegynder
16. juli 2007 - 19:56 #5
Hmm jeg gætter på at den nævnte time() er en PHP-funktion og ikke MySQL's egen. Umiddelbart har jeg ikke lige et bud så, men det er der givetvis andre der har. Vi må håbe på at de kommer forbi.

Jeg har dog et spørgsmål: Hvorfor bruger du ikke simelthen de tidsfunktioner som er indbygget i MySQL - ved f.eks. at gemme datoer i et datetime felt?
Avatar billede cronick Nybegynder
16. juli 2007 - 20:00 #6
Ved jeg ikke helt - er måske fordi jeg er bange for, at det jeg gemmer ikke altid vil være nok til mit brug. Med en time() vil man jo altid kunne finde frem til netop det man skal bruge - og så er det jo nemt at bruge, når man skal sammenligne størrelser..

Men håber da, at det kan lade sig gøre - det virker jo ikke umiddelbart som en umulig opgave.. :)
Avatar billede cronick Nybegynder
16. juli 2007 - 20:08 #7
Tror jeg selv fandt ud af det.. Måtte bare tilføje en ekstra funktion rundt om bpi.dato:

WHERE (bpi.id IS NULL) OR date(FROM_UNIXTIME(bpi.dato)) <> curdate()

Men du skal have tak for dit svar - det førte mig trods alt faktisk næsten hertil.. Derfor er du velkommen til at efterlade et svar.. ;)
Avatar billede nielle Nybegynder
16. juli 2007 - 21:14 #8
Så lad os dele 50-50 :^)
Avatar billede cronick Nybegynder
17. juli 2007 - 00:48 #9
Hehe okey.. Fair.. ;)
Avatar billede nielle Nybegynder
17. juli 2007 - 06:48 #10
Takket :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester