25. januar 2008 - 18:36Der 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.
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 :)
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.
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 :)?
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.
Synes godt om
Ny brugerNybegynder
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.