[MySQL] Rekenen met datums
Knorfski
26/01/2006 18:27:00Hallo,
Ik heb een probleem.
Ik heb een script waarbij ik standen uit de database moet halen uit een bepaalde "range".
Het gaat dan per maand.
Bijv.
van 2006-01-01 tot 2006-02-01 moeten er rows worden opgehaald en daar word dan een gemiddelde van berekend.
Ik heb in de database de tijden opgeslagen in DATETIME.
en ik gebruik zelf de query:
Als ik de WHERE clause weghaal dan krijg ik wel een gemiddelde (alleen die wil ik niet).
Heeft iemand een idee ?
Ik heb een probleem.
Ik heb een script waarbij ik standen uit de database moet halen uit een bepaalde "range".
Het gaat dan per maand.
Bijv.
van 2006-01-01 tot 2006-02-01 moeten er rows worden opgehaald en daar word dan een gemiddelde van berekend.
Ik heb in de database de tijden opgeslagen in DATETIME.
en ik gebruik zelf de query:
Code (php)
1
"SELECT AVG(stand) as avg_jan FROM standen WHERE tijd between '$year-01-01' and $year-02-01";
Als ik de WHERE clause weghaal dan krijg ik wel een gemiddelde (alleen die wil ik niet).
Heeft iemand een idee ?
Gewijzigd op 26/01/2006 18:27:00 door Knorfski
PHP hulp
09/01/2025 05:06:19Willem vp
26/01/2006 18:45:00Knorfski
26/01/2006 19:05:00Als ik dat doe dan krijg ik
Als ik alle quotes weglaat dan krijg ik hetzelfde resultaat als in het begin :'(
Code (php)
1
2
3
4
2
3
4
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2000-01-01 and 2000-02-01' at line 1
Query:
SELECT AVG(stand) as avg_jan FROM standen WHERE tijd between 2000-01-01 and 2000-02-01
Query:
SELECT AVG(stand) as avg_jan FROM standen WHERE tijd between 2000-01-01 and 2000-02-01
Als ik alle quotes weglaat dan krijg ik hetzelfde resultaat als in het begin :'(
Marc
26/01/2006 19:44:00is uw veld geen datetime
want als dat zo is moet u, geloof ik, '2000-01-01 00:00:00' and '2000-02-01 00:00:00' eens proberen
ben geen pro maar bij mij werkt het zo
want als dat zo is moet u, geloof ik, '2000-01-01 00:00:00' and '2000-02-01 00:00:00' eens proberen
ben geen pro maar bij mij werkt het zo
Klaasjan Boven
26/01/2006 19:54:00zelf zou ik het zo doen
$van =$year."-01-01";
$tot=$year."-02-01";
$sql="SELECT AVG(stand) as avg_jan FROM standen WHERE tijd BETWEEN $van AND $tot";
echo $sql; (ff kijken wat je de DB precies vraagt.)
$res=mysql_query($sql);
$van =$year."-01-01";
$tot=$year."-02-01";
$sql="SELECT AVG(stand) as avg_jan FROM standen WHERE tijd BETWEEN $van AND $tot";
echo $sql; (ff kijken wat je de DB precies vraagt.)
$res=mysql_query($sql);
Knorfski
26/01/2006 20:25:00Hallo Klaasjan,
Is het dan met of zonder quotes ?
zonder quotes krijg ik de melding
Is het dan met of zonder quotes ?
zonder quotes krijg ik de melding
Code (php)
1
2
2
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:00 and 2000-02-01 00:00:00' at line 1
SELECT AVG(stand) as avg_jan FROM standen WHERE tijd between 2000-01-01 00:00:00 and 2000-02-01 00:00:00
SELECT AVG(stand) as avg_jan FROM standen WHERE tijd between 2000-01-01 00:00:00 and 2000-02-01 00:00:00
Gewijzigd op 26/01/2006 20:26:00 door Knorfski
Klaasjan Boven
26/01/2006 20:43:00Ik gebruik zelf dit stukje code in een van mijn scripts
SELECT * FROM $table WHERE datum BETWEEN $mavan AND $matot;
en dat werkt prima zonder de ''
Probeer het nog eens zonder de tijd( dus alleen YYYY-MM-DD) als je wilt en in wat voor VELD is je data in de tabel opgeslagen?
SELECT * FROM $table WHERE datum BETWEEN $mavan AND $matot;
en dat werkt prima zonder de ''
Probeer het nog eens zonder de tijd( dus alleen YYYY-MM-DD) als je wilt en in wat voor VELD is je data in de tabel opgeslagen?