Avatar billede dank Nybegynder
07. januar 2004 - 12:07 Der er 16 kommentarer og
2 løsninger

søge i MySQL (date)

Jeg har i mysql et par felter af typen 'date'

mintabel.periode_fra
mintabel.periode_til

til og fra kan f.eks. være

2004-01-07
2004-06-07

Hvordan finder jeg de rækker som ligger indenfor periode_fra til periode_til?

En lille kodestump ville blive værdsat.
Avatar billede ahv Nybegynder
07. januar 2004 - 12:09 #1
mysql_query("SELECT * FROM tabel WHERE datefelt BETWEEN '2002-06-06' AND '2003-12-07'");
Avatar billede dank Nybegynder
07. januar 2004 - 12:15 #2
avs, jeg har lige opdaget noget.. Når der så er gået 1 år fra d.d. så vil man ikke kunnde finde noget, da årstallet stadig er 2004

Kan man gøre noget tilsvarende og kun kigge på månederne? - jeg giver nogle flere point hvis nogen kan hjælpe med det.
Avatar billede detox Nybegynder
07. januar 2004 - 12:18 #3
1 år fra d.d. er altså 2005.
Avatar billede dank Nybegynder
07. januar 2004 - 12:19 #4
jeps.. hele ideen er at jeg har nogle abbonemts typer, og jeg skal altid kunne finde dem der er inden for en "range" i forhold til d.d.

Problemet opstår hvis perioden går fra 2004-01-07 > 2004-06-07

Så vil jeg når jeg næste år laver søgningen ikke kunne finde rækken fordi der står 2004 i mysql rækken.
Avatar billede ahv Nybegynder
07. januar 2004 - 12:20 #5
Så hvis den skal se fra jan til marts. Så er det ligemeget om januar er i 2005 og marts er 2005 eller hvordan?
Avatar billede ahv Nybegynder
07. januar 2004 - 12:20 #6
Dette udtryk er jo heller ikke sandt?

2004-01-07 > 2004-06-07
Avatar billede dank Nybegynder
07. januar 2004 - 12:21 #7
ja præcis..
Avatar billede dank Nybegynder
07. januar 2004 - 12:22 #8
7 januar til 7 juni?
Avatar billede ahv Nybegynder
07. januar 2004 - 12:23 #9
Ja, hvis du ikke tilføjer årstal vil den da tælle næste år som gyldigt også, altså jan i år og jun næste år vil så udgøre et interval!

Hvis jeg tager fejl så må du lige forklare (igen).
Avatar billede ahv Nybegynder
07. januar 2004 - 12:24 #10
Intervallet vil jo så ikke blive 5 måneder, men 17 måneder.
Avatar billede dank Nybegynder
07. januar 2004 - 12:28 #11
Ja det er for så vidt rigtigt nok, men det betyder nok ikke så meget i denne sammenhæng (tror jeg) :)

Resultatet skulle gerne være at jeg ved at køre scriptet en gang om ugen, ville kunne se hvem der skal faktueres, fordi deres abb er f.eks. i starten af en ny periode..

altså et abbonements system.

Hvis det ikke er en (god) måde at gøre dette på, så er jeg lutter øre :)
Avatar billede ahv Nybegynder
07. januar 2004 - 12:29 #12
Hvad med at indtaste årstallet vi har nu i en form? Så kan den vel tjekke det på denne måde?
Avatar billede detox Nybegynder
07. januar 2004 - 12:32 #13
Hvis jeg forstår dig ret vil du fx kunne udtrække alle fra jan-jun uanset år. Du vil jo altid kunne gøre det på den her måde:

SELECT * FROM `tb` WHERE DATE_FORMAT(tid, '%m-%d') between '01-01' and '07-01'

Vil udtrække alle fra jan-jun fra alle år.
Avatar billede detox Nybegynder
07. januar 2004 - 12:45 #14
Eller selvfølgelig nok nærmere:

SELECT * FROM `tb` WHERE DATE_FORMAT(tid, '%m-%d') between '01-01' and '06-30'
Avatar billede dank Nybegynder
07. januar 2004 - 13:07 #15
ja detox.. opretter du svar?
Avatar billede detox Nybegynder
07. januar 2004 - 13:10 #16
jo da
Avatar billede dank Nybegynder
07. januar 2004 - 13:11 #17
takker til jer begge.. i deler i porten
Avatar billede detox Nybegynder
07. januar 2004 - 13:36 #18
Velbekommen c",)
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