Hallo,

Ik heb in mijn database een tabel genaamd verdiensten.
In deze tabel word een ID, aantalpunten, gebruikerid en tijd gezet
De tijd word er in gezet via mysql query NOW();
Dan krijg je de datum zoals: 2011-01-01 11:25:56

Ik wil nu alle verdiensten van een dag ophalen en de punten bij elkaar optellen.
Het lukt mij niet ik dacht aan deze query:
SELECT * FROM verdiensten WHERE tijd LIKE CURDATE()%
en daarna via while($row=mysql_fetch_assoc($query))
alle punten bij elkaar optellen.

Ik hoor graag hoe ik dit wel kan doen
1. geen like gebruiken!!!! je kan op heel eenvoudige wijze de datum tijd casten naar een datum
2. geef je veldnamen een duidelijke naam. tijd is hh:mi:ss en niet yyyy-mm-dd hh:mi:ss

zie de datum tijd functies van mysql

Oh en gebruik de constante en niet de functie CURDATE(), en de oplossing zit zeer zeker niet in DATE_FORMAT

SELECT * FROM verdiensten WHERE tijd BETWEEN vandaag 00.00 AND vandaag 23:59
Aad hoe weet je wat vandaag is? moet je daar gewoon de query stoppen en via PHP date de datum invoegen?
haha noppes als je zo slim bent dan moet je toch echt weten dat vandaag geen functie is en dat dit dynamisch moet zijn dus niet elke dag de datum invoeren
zo dom is hij echt niet hoor, je moet gewoon dan met sql de datum van vandaag krijgen...
Noppes Homeland op 01/01/2011 15:29:56

Wat Aad als oplossing geeft is -/- er zijn beter oplossingen te bedenken
De oplossing die ik geef los ik in mijn SQL implementatie op met SELECT * FROM verdiensten WHERE variabele_tijd BETWEEN trunc(sysdate) AND trunc(sysdate+1)
Nu alleen nog even zoeken hoe of in MySQL trunc(date) functie te bouwen is omdat het helaas niet standaard aanwezig is....
WHERE DATE(datumveld) = CURDATE()
@Noppes en @Santhe:
Dank voor de wijze les, ik neem mijn sarcastische opmerking terug!

Reageren