[MySQL] Rekenen met datums

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Knorfski

Knorfski

26/01/2006 18:27:00
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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

PHP hulp

19/11/2024 09:34:24
 
Willem vp

Willem vp

26/01/2006 18:45:00
Quote Anchor link
'$year-02-01' staat niet tussen quotes. Dat zou nog wel eens een probleem kunnen geven...
 
Knorfski

Knorfski

26/01/2006 19:05:00
Quote Anchor link
Als ik dat doe dan krijg ik

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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


Als ik alle quotes weglaat dan krijg ik hetzelfde resultaat als in het begin :'(
 
Marc

Marc

26/01/2006 19:44:00
Quote Anchor link
is 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
 
Klaasjan Boven

Klaasjan Boven

26/01/2006 19:54:00
Quote Anchor link
zelf 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);
 
Knorfski

Knorfski

26/01/2006 20:25:00
Quote Anchor link
Hallo Klaasjan,

Is het dan met of zonder quotes ?

zonder quotes krijg ik de melding
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
Gewijzigd op 26/01/2006 20:26:00 door Knorfski
 
Klaasjan Boven

Klaasjan Boven

26/01/2006 20:43:00
Quote Anchor link
Ik 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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.