09. juli 2004 - 12:22Der er
18 kommentarer og 1 løsning
Between medtager kun værdier imellem, ikke de angivne værdier
Hej Eksperter.
Jeg har et lille problem. Jeg benytter BETWEEN til at finde poster fx i området 10 - 100. Desværre henter den kun posterne 11-99. Hvordan får jeg 10 og 100 med?
Faktisk burde jeg tilføje, at $fra og $til er datoer, og at feltet i databasen er et datetime field. Det var bare mere simpelt at forklare det med tal .)
Kan ikke rigtigt hjälpe dig. Du kan jo göre sådan at du adderer/subtraherer med en dag når du henter datoen fra brugeren. $tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y")); $yesterday = mktime(0, 0, 0, date("m") , date("d")-1, date("Y"));
De der '-tegn vil ihvertfald give problemer de får mysql til at se fra og til som strenge og så bliver 'større end' beregnet som alfabetisk orden. dvs at '100' < '2' giver sand fordi bogstav '1' er mindre end bogstav '2' Det er muligt det blot er den fejl du fortolker som 'kun værdier imellem' så årøv: $soeg = mysql_query("SELECT * FROM table WHERE `tal` BETWEEN $fra AND $til");
Ups. der5 var jeg helt ved siden af. Med et datetime felt og datetime værdier skal '-tegnene være der. Men din test skal være med datetime værdier for numeriske værdier kan det gå galt som beskrevet ovenfor..
Jeg tror humlen i problemet kommer af at den fulde DATETIME-værdi af 2004-07-09 er 2004-07-09 00:00, og du beder den dermed om at finde tidspunkter imellem 2001-10-05 00:00 og 2004-07-09 00:00, og så skal den naturligvis ikke tage 2004-07-09 02:10 med.
Løsningen kunne være at sætte 23:59 på sluttidspunktet.
Nå, jeg ser og få lukket, inden jeg glemmer det :)
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.