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.
Annonceindlæg fra gavdi
07. januar 2004 - 12:09
#1
mysql_query("SELECT * FROM tabel WHERE datefelt BETWEEN '2002-06-06' AND '2003-12-07'");
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.
07. januar 2004 - 12:18
#3
1 år fra d.d. er altså 2005.
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.
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?
07. januar 2004 - 12:20
#6
Dette udtryk er jo heller ikke sandt? 2004-01-07 > 2004-06-07
07. januar 2004 - 12:21
#7
ja præcis..
07. januar 2004 - 12:22
#8
7 januar til 7 juni?
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).
07. januar 2004 - 12:24
#10
Intervallet vil jo så ikke blive 5 måneder, men 17 måneder.
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 :)
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?
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.
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'
07. januar 2004 - 13:07
#15
ja detox.. opretter du svar?
07. januar 2004 - 13:10
#16
jo da
07. januar 2004 - 13:11
#17
takker til jer begge.. i deler i porten
07. januar 2004 - 13:36
#18
Velbekommen c",)
Vi tilbyder markedets bedste kurser inden for webudvikling