För i går kan du testa följande:
WHERE DATE_FORMAT(buddatum, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
10 svar · 488 visningar · startad av Asa
Vill räkna antal poster som gjorts idag, igår, denna vecka, denna månad via sql och undrar hur man skall skriva.. Använder MySQL 5 databas. buddatum är i följande format 2006-07-02 22:54:00
Så här är det för att hämta dagens poster:
strBudIdag = Conn.Execute("Select Count(*) From tbl_bud Where to_days(buddatum)= to_days(current_date)").Fields(0)
Men hur skriver man de andra?
För i går kan du testa följande:
WHERE DATE_FORMAT(buddatum, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
Det funkade prima.. :) Supertack! Nu väntar jag bara på svar för de andra innan jag sätter slutgiltigt svar!
Då borde du kunna skriva:
Senaste veckan:
WHERE DATE_FORMAT(buddatum, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 7 DAY)
alternativt:
WHERE DATE_FORMAT(buddatum, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 WEEK)
Senaste månaden:
WHERE DATE_FORMAT(buddatum, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
Hmm, verkar inte skriva ut rätt. Den skriver bara ut dagen för 1 vecka sedan och för 1 månad sedan. Vill visa alla poster denna vecka och alla poster denna månad. Nu i detta fall vecka 26 och juli månad.
Ahh, liten miss av mig. :(
Du måste klart hämta posterna där buddatum är större än aktuellt intervall. Byt ut likhetstecknet mot ett >, tror jag det blir. ;)
Det verkar funka prima. Tackar för all hjälp. Denna kod är rätt på allt:
Select Count(*) From tbl_bud Where to_days(buddatum)= to_days(current_date)
Select Count(*) From tbl_bud WHERE DATE_FORMAT(buddatum, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
Select Count(*) From tbl_bud Where DATE_FORMAT(buddatum, '%Y-%m-%d') > DATE_SUB(CURDATE(), INTERVAL 7 DAY)
Select Count(*) From tbl_bud Where DATE_FORMAT(buddatum, '%Y-%m-%d') > DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
Det verkar ej funka iallafall. Den visar alla 7 dagar från idag och bakåt. Samma för månad. Den skall visa denna veckas poste och denna mmånads poster. Ex v 27 och juli månad.
Asa skrev:
Det verkar ej funka iallafall. Den visar alla 7 dagar från idag och bakåt. Samma för månad. Den skall visa denna veckas poste och denna mmånads poster. Ex v 27 och juli månad.
Aha, då missförstod jag dig. ;)
Okey, då gör jag ett nytt försök. ;) Är ute på lite hal is nu, men detta KAN fungera om jag tolkat manualen korrekt:
Vecka:
WHERE YEAR(CURDATE()) = YEAR(buddatum) AND WEEK(CURDATE(), 3) = WEEK(buddatum, 3)
Månad:
WHERE YEAR(CURDATE()) = YEAR(buddatum) AND MONTH(CURDATE()) = MONTH(buddatum)
Funkade fint. Tackar :)