Avatar billede michaelgm Nybegynder
27. december 2007 - 16:40 Der er 3 kommentarer og
1 løsning

søgning på datetime

Hvis jeg skal bruge finde en post på en bestemt dato

$idag = date('Y-m-d');

SELECT besked FROM post WHERE modtager='$_SESSION[brugernavn]' AND dato='$idag'

Giver ikke noget den vil have klokken med da feltet dato er datetime

Skal jeg til at lave
between '$idag 00:00:00' and '$idag 23:59:59'
eller er der en smartere måde at gøre det på?
Avatar billede barklund Nybegynder
27. december 2007 - 16:49 #1
Du kan trunkere feltet ned til kun at være et datofelt og dermed kaste timer og mindre væk. Det er bestemt hurtigere end at sammenligne med et interval.

Og den nemmeste og hurtigste måde at trunkere en datetime til date er faktisk med substring:

SELECT besked FROM post WHERE modtager = $_SESSION[brugernavn]' AND SUBSTR(dato,1,10)='$idag'

Det er lidt "hacket", men det er ganske effektivt og "fejlfrit" :)

--
Morten Barklund
Avatar billede michaelgm Nybegynder
27. december 2007 - 17:43 #2
Undskyld jeg først vender tilbage nu. Men det virkede. Tak..
Havde slet ikke tænkt over man kunne gøre det sådan.
Men kunne nemt forestille mig det gik hurtigere end at skulle til at sammenligne med et interval. Også derfor jeg lige ville høre.

Men du kan bare ligge et svar.
Avatar billede barklund Nybegynder
27. december 2007 - 17:56 #3
Oki :)
Avatar billede barklund Nybegynder
27. december 2007 - 20:04 #4
Tanks
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