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 · 506 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