moeilijke date en time query
Als ik kijk naar de query:
The following query selects all rows with a date_col value from within the last 30 days:
mysql> SELECT something FROM tbl_name
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;
Dan begrijp ik dit. Ik heb naar aanleidingh van een post op dit forum de volgende query gebruikt:
SELECT * FROM todo WHERE td.td_datumE < DATE_SUB(CURDATE(),INTERVAL 7 MONTH)
To get all the items out of the database table td where the column td_datumE value is within the 7 months...
Maar eigenlijk zou ik graag alle items uit de database halen waar de datum in kolom td_datumE overeenkomt met de datum megegeven in de URL (dit is $colname_td), maar ook alle vanaf 5 dagen voor de datum meegegeven in de URL
$colname_td = "-1";
if (isset($_GET['eventid'])) {
$colname_td = (get_magic_quotes_gpc()) ? $_GET['eventid'] : addslashes($_GET['eventid']);
}
("SELECT * FROM td LEFT JOIN td_cat ON td.td_cat = td_cat.tdcat_id WHERE td_status <> 'closed' AND td_datumE = '%s'", $colname_td);
Hoe moet ik it nu doen? Is er iemand met een idee? De bovenstaande query levert alleen overeenkomstige items op, dus niet ook alle items 5 dagen voor de datum meegegeven in de URL.
Grt.
Kabbi
$colname_td = "-1";
?
bedoel je niet
$colname_td--;
of
$colname_td -= 1
;
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT
*
FROM
todo
WHERE
td.td_datumE
BETWEEN
DATE_SUB(CURDATE())
AND
DATE_SUB(CURDATE() - INTERVAL 5 DAYS)
*
FROM
todo
WHERE
td.td_datumE
BETWEEN
DATE_SUB(CURDATE())
AND
DATE_SUB(CURDATE() - INTERVAL 5 DAYS)
Zoiets?
GEEDIT IVM FOUTJE
codetags
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Ja zoiets alleen ik laat een pagina zien waarbij de datum in een URL variabele wordt meegegeven. Ik kijk bijvoorbeeld bij 2007-05-09 dan wil ik graag alle items zien waarbij td.td_datumE overeenkomt met de url variabele [de datum/dag die ik bekijk], alleen ik wil ook alle items tonen hier welke vanaf 5 dagen eerder bestaan.. [dus td.datumE vergelijken met de URL variabele en dan ook nog eens alle ingevoerde items laten zien 5 dagen voor de URL variabele [in td.td_datumE wordt de data voor een item opgeslagen].
Ik vergelijk het dus niet met de huidige datum maar met de datum meegegeven in de url variabele....
Dit moet wel mogelijk zijn toch? Ik kom er echter niet uit.....
grt.
Kabbi
Nog niet helemaal... de doorgegeven URL variabele datum [bijvoorbeeld 2007-05-09] heb ik in $colname_td. Ik vergelijk de data uit de db met de data in $colname_td [de meegegeven URL variabele waarde, hier: 2007-05-09]. Wat ik nu wil is alle items laten zien waarbij 2007-05-09 overeenkomt in de kolom td.td_datumE, maar ook alle items met een datum tussen 2007-05-14 en 2007-05-09.
M.a.w ik klik op een willekeurige datum deze datum wordt meegegevenin de URL naar het overzichtscherm, op het overzichtscherm wil ik alle items laten zien tot 5 dagen na de datum doorgegeven in de URL vanaf de datum doorgegeven in de url
Ik wil dus elke keer als ik in de agenda kijk bij een willekeurige datum, alle items laten zien welke tussen de gekozen datum en de datum 5 dagen daarna in de database staan....
Het is een beetje ingewikkeld uit te leggen, hopelijk is het duidelijk.
In mijn vorige posts had ik het over 5 dagen ervoor, maar ik wil natuurlijk kijken wat er ook in de agenda staat vanaf de gekozen datum t/m 5 dagen erna....
grt.
Kabbi
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sql="
SELECT
*
FROM
todo
WHERE
td.td_datumE
BETWEEN
'".$colname_td."'
AND
'".$colname_td."' - INTERVAL 5 DAYS"
?>
$sql="
SELECT
*
FROM
todo
WHERE
td.td_datumE
BETWEEN
'".$colname_td."'
AND
'".$colname_td."' - INTERVAL 5 DAYS"
?>
Dan moet dat het volgens mij doen
Zou deze query ook werken?
("SELECT * FROM td LEFT JOIN td_cat ON td.td_cat = td_cat.tdcat_id WHERE td_status <> 'closed' AND td.td_datumE > DATE_SUB(%s,INTERVAL 7 DAY)", $colname_td);
Bovenstaande query geeft geen error maar toch wordt niet alles getoond... vreemd...
Is de query wel goed?
Groet, Kabbi
En wat moet %s voorstellen?
Hmm, inderdaad. Sorry!
Thanks a lot!! :)
GRaag gedaan