tabellen spalte mit date(format,spalte) formatieren

Rios

Erfahrenes Mitglied
hi,

ich habe folgende abfrage

PHP:
$sql = "SELECT count(*) from zugriffe WHERE date(n,time)= '".$monat."' AND date(Y,time)='".$jahr."'";
//in $monat steht eine 12 und in $jahr steht 2003

Die tabelle zugriffe hat 3 felder, das dritte heisst time und hat nen timestamp für das logindatum.
jetzt wollte ich die anzahl der zugriffe von diesem monat, also dezember ausgeben.

geht es generell, dass ich in der abfrage eine tabellenspalte mit date() formatiere?
oder muss ich einen timestamp für monatsend und monatsanfang erstellen, und die abfrage etwa so machen:
select from zugriffe where time > $anfangtimestamp and < $endtimestamp
 
die Abfrage währe so besser:
PHP:
$sql = "SELECT count(*) from zugriffe WHERE month(time)= '".$monat."' AND year(time)='".$jahr."'";
 
hmm zu früh gefreut, die abfrage bringt zwar keinen fehler, aber es gibt immer 0 zurück..

PHP:
SELECT count(*) from zugriffe 
WHERE month(time)=12 
AND year(time)=2003

diese abfrage liefert 0 zurück, obwohl es eigentlich auf 9 datensätze zutrifft.
was ist daran falsch?
 
A) da fehlen die ' um die werte
month(time)='12'

B) count(*) braucht normaler weise ein group by und * darf man auch nicht angeben
es muss eine Spalte sein
count(time)

SELECT count(time) from zugriffe

WHERE month(time)='12'

AND year(time)='2003' Group by wasauchimmer
 
die anführungszeichen fehlen nur, weil ich das ausm phpmyadmin rauskopiert hab.

das mit der month() und year() funktion scheint nicht hinzuhauen, sobald ich das einbaue liefert er 0 zurück

//edit
habe grad in der mysql doku geschaut, ich glaub die month funktion geht nur mit nem datum in der form: 2003-22-12
 
Zuletzt bearbeitet:
Zurück