Toon posts:

sql : interval query

Pagina: 1
Acties:

Verwijderd

Topicstarter
wie kan mij helpen bij deze query, het is de bedoeling dat ik de gegevens van precies een week terug krijg
PHP:
1
2
3
4
<?
    $vandaag=date('Y-m-d');
    $query=mysql_query("SELECT email,plaats2,actief,frequentie,lastdate,persoonid FROM persoon WHERE actief='J' AND lastdate='$date' ORDER BY persoonid ASC",$link);
?>

ik had zelf twee oplossingen, maar heb geen idee hoe ik ze toe moet passen :'(

- '$date' - interval 1 week
- date_sub("$date",interval 1 week)

Verwijderd

Topicstarter
6minuten wachten.... niemand?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op woensdag 12 december 2001 12:07 schreef danokorst het volgende:
6minuten wachten.... niemand?
[topic=327241/1/25]
Policy mbt het omhoogschoppen van threads. Wacht minstens 24 uur voor je je topic omhoog schopt. Doe dit dan ook alleen met een zinnige opmerking en dus niet met "Waarom antwoord er nou niemand" nadat je 5 minuten geen antwoord hebt gehad. Sommigen van ons hebben een leven :+

Doet iets met Cloud (MS/IBM)


  • [ti]
  • Registratie: Februari 2000
  • Niet online
6 minuten.. poeweej.
code:
1
2
3
4
5
SELECT email,plaats2,actief,frequentie,lastdate,persoonid 
FROM persoon 
WHERE actief = 'J' 
AND lastdate = date_sub('$date', interval 1 week)
ORDER BY persoonid ASC

Bedoel je dat met "hoe ik dat moet toepassen"?

Verwijderd

Topicstarter
dat had ik dus al geprobeerd : oops : 1064: You have an error in your SQL syntax near 'week) ORDER BY persoonid ASC' at line 1


edit : OMH WAT EEN SLECHTE ACTIE!!!! $date moet $vandaag zijn.... wat een n00b ben ik |:(

Verwijderd

Op woensdag 12 december 2001 12:07 schreef danokorst het volgende:
6minuten wachten.... niemand?
/me noteert... :(

Verwijderd

Je kunt het ook met (TO_DAYS(NOW()) - TO_DAYS(Date) > 7) doen.

Indien je niet de huidige datum wil, zet je gewoon TO_DAYS($datum), moet je wel zien dat die datum in YYYY-MM-DD HH:MM:SS formaat is, of een ander formaat wat MySQL aankan.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 12 december 2001 12:07 schreef danokorst het volgende:
6minuten wachten.... niemand?
Das nou jammer... ben je al bij iemand anders op zijn ignore list toegevoegd.. Nu ook nog eens bij de mijne..

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op woensdag 12 december 2001 12:40 schreef dusty het volgende:

[..]

Das nou jammer... ben je al bij iemand anders op zijn ignore list toegevoegd.. Nu ook nog eens bij de mijne..
[off topic]
Is die ignore lijst in je hoofd of is dat functionaliteit van dit forum
[/off topic]

  • Bpje
  • Registratie: November 2000
  • Laatst online: 18:29
De gegevens van 1 week gaat dat dan om de afgelopen week, om alle gegevens van bijvoorbeeld week 21 of wil je een lijst maken gegroepeerd op weken ?


voor het laatste heb ik deze oplossing:

De select kun je volgens mij het beste in twee stappen uitvoeren.

stap 1
datum van vandaag - 7 en deze bepalen en rekening houden met maanden enzo.

stap 2
selecteer de gegevens die tussen die twee datums liggen.
zo iets als:
'SELECT * FROM een_tabel
WHERE datum > "'.$datumvorigeweek.'"
AND datum < "'.$datumvandaag2.'"';

Als dit niet je vraag is doe dan nog ff een uitgebreide uitleg. ( en je kunt het best ff wat langer wachten dan 6 min (maar dat had je vast al begrepen))

Verwijderd

Topicstarter
nah dit is veels te omslachtig, want jij lost het op door het in php op te lossen. dan moet ik weer een gigantisch php script gaan schrijven (date reversie, date-7, noem maar op)

het moet dus via sql. ben nu die interval manier aan het uitproberen maar het wil niet lukken. krijg steeds een foutmelding bij 'week'
code:
1
2
3
4
5
SELECT email,plaats2,actief,frequentie,lastdate,persoonid 
FROM persoon 
WHERE actief = 'J' 
AND lastdate = date_sub('$date', interval 1 week) 
ORDER BY persoonid ASC

  • Bpje
  • Registratie: November 2000
  • Laatst online: 18:29
Sorry maar ik kan niet veel vinden over interval. Weet je zeker dat het een functie is mysql ??

  • Bpje
  • Registratie: November 2000
  • Laatst online: 18:29
Was toch te snel met antwoorden ik zoek ff verder en ik heb het! Het kan niet!

http://www.mysql.com/doc/D/a/Date_and_time_functions.html

per maand, jaar geen probleem maar week kent ie niet.

Maar met deze functie kun je wel eenvoudig 7 dagen er af halen.

mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997-12-02

  • PolarWolf
  • Registratie: November 2001
  • Laatst online: 26-05 15:23

PolarWolf

Debian, of course.

Op woensdag 12 december 2001 14:10 schreef Bpje het volgende:
Was toch te snel met antwoorden ik zoek ff verder en ik heb het! Het kan niet!

http://www.mysql.com/doc/D/a/Date_and_time_functions.html

per maand, jaar geen probleem maar week kent ie niet.

Maar met deze functie kun je wel eenvoudig 7 dagen er af halen.

mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997-12-02
Uhm...eerste code voorbeeld voor alles binnen een maand geleden en nu:
mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
Boerenlogica:
mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 7;
voor alles binnen een week geleden en nu...toch?
Dus ff doorgaand op de vraag:
mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) = 7;
voor alles van een week geleden.

Dacht ik.

Wel ff uitkijken met dit soort datumgeklooi, though...je vergeet gauw een paar tijdsovergangen.

* PolarWolf likes where date_col=sysdate-7...

/* Edit
Edit toegevoegd
*/

Undernet #linux, Undernet #ipsec

Pagina: 1