Avatar billede 4u2x Nybegynder
25. januar 2008 - 18:36 Der er 12 kommentarer og
1 løsning

where unix_timestamp er mellem 2007 og 2008

Har en kolonne "dato" som er indtastet via unix_timestamp() i mysql-db'en, hvor jeg gerne vil have WHERE til at finde data fra "dato"-kolonnen hvor året er lig 2007 eller 2008... dvs al data fra årene 2007 og 2008 skal hentes.

En som ved hvordan man gør?
Avatar billede erikjacobsen Ekspert
25. januar 2008 - 18:42 #1
Find unixtimestamp for 2007-01-01 00:00:00 og 2008-12-31 23:59:59 og brug de 2 værdier i din SELECT.
Avatar billede Slettet bruger
25. januar 2008 - 18:45 #2
FROM_UNIXTIME(unix_timestamp) konverterer unixtimestamp til almindelig dato som der så kan arbejdes videre på
Avatar billede erikjacobsen Ekspert
25. januar 2008 - 18:55 #3
Ved at bruge FROM_UNIXTIME kan der ikke udnyttes et eventuelt index på feltet, og iøvrigt må det være mere tidskrævende: en omregning fra unixtimestamp til dato for hver række, i stedet for de 2 omregning jeg har foreslået. Men selvfølgelig kan det også gøres på daleifs måde :)
Avatar billede 4u2x Nybegynder
25. januar 2008 - 19:13 #4
WHERE dato >= UNIX_TIMESTAMP('2008-01-01')

er metoden jeg har fået til at virke... takker for responsen og tilbyder at splitte point som tak til jer begge?
Avatar billede erikjacobsen Ekspert
25. januar 2008 - 19:16 #5
Så får du alle dem i år 2008 - men ikke i 2007. Men det er måske en anden forespørgsel?
Er det noget du gør tit kan du overveje at sætte index på feltet.
Jeg samler slet ikke på point, tak.
Avatar billede 4u2x Nybegynder
25. januar 2008 - 19:24 #6
WHERE dato >= UNIX_TIMESTAMP('2007-01-01') AND >= UNIX_TIMESTAMP('2008-12-31')

er den korrekte linje... og det virker :)
Avatar billede 4u2x Nybegynder
25. januar 2008 - 19:25 #7
hov sådan her

WHERE dato >= UNIX_TIMESTAMP('2007-01-01') AND dato <= UNIX_TIMESTAMP('2008-12-31')
Avatar billede erikjacobsen Ekspert
25. januar 2008 - 19:25 #8
WHERE dato >= UNIX_TIMESTAMP('2007-01-01') AND dato<= UNIX_TIMESTAMP('2008-12-31 23:59:59')

-- vil jeg anbefale
Avatar billede 4u2x Nybegynder
25. januar 2008 - 20:12 #9
ja det kan nok være det er endnu bedre.. ligger du et svar?
Avatar billede erikjacobsen Ekspert
25. januar 2008 - 20:26 #10
Jeg samler slet ikke på point, tak.
Avatar billede 4u2x Nybegynder
25. januar 2008 - 21:28 #11
lukker..
Avatar billede zurekk Nybegynder
26. januar 2008 - 15:28 #12
Men ville det ikke være smartere at have din timestamp klar i forvejen, så din database ikke skal finde den frem hver eneste gang du foretager en query :)?
Avatar billede erikjacobsen Ekspert
26. januar 2008 - 16:06 #13
En smule ja, men det går selvfølgelig ud over læseligheden:

  WHERE dato >= 1167627600 AND dato<=  1230785999

(hvis jeg har regnet rigtigt) Jeg tror ikke man kan mærke spor forskel.
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
Computerworld tilbyder specialiserede kurser i database-management

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