Kom ihåg mig?
Home Menu

Menu


Datum i MySQL

Ämnesverktyg Visningsalternativ
Oläst 2005-02-01, 16:26 #1
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Jag har en kolumn med datum i en databas (MySQL). Kolumnen är av typen DATETIME och värdena har alltså formen 'YYYY-MM-DD HH:MM:SS'. Nu skulle jag vilja räkna hur många rader som har ett visst datum, alltså oberoende av klockslaget. Vilket är bästa sättet?

Ska man använda WHERE och ange värden som ligger mellan t.ex. 2005-02-01 00:00:00 och 2005-02-01 23:59:59? Finns det någon färdig syntax i MySQL? En annan variant är ju att läsa in alla rader i php och där gruppera och summera.

Kanske ska tillägga att jag som resultat vill få presenterat en lista över alla dagar (från ett visst datum till dagens datum) och hur många poster i databasen som har resp. datum (oavsett klockslag). Jag borde inte vara den första som funderat på detta...
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-01, 17:30 #2
mypay mypay är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 528
mypay mypay är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 528
select * from MyTable where datum LIKE '2005-02-01%'

LIKE är en wildcard funktion och wildcard-tecknet är då %
mypay är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-01, 18:01 #3
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Tack, det var ju enkelt. Då är det bara att göra en loop i php-skriptet från startdatumet till dagens datum och skicka en sql-fråga för varje datum. I mitt fall rör det sig då om max 150 frågor, så det borde fungera bra utan att det blir segt.

Men finns det något sätt att låta databasmotorn göra så mycket som möjligt av jobbet? Dvs formulera frågan så att svaret blir en kolumn med datum och en kolumn med antal poster. Förtydligar mig för säkerhets skull:

Om tabellen ser ut ungefär så här...
Kod:
datum             text
2005-01-20 14:25:00  "dummy value"
2005-01-20 21:03:18  "dummy value"
2005-01-21 08:07:30  "dummy value"
2005-01-23 12:00:47  "dummy value"
2005-01-23 16:26:01  "dummy value"
2005-01-23 22:56:17  "dummy value"
...så vill jag ha följande resultat:
Kod:
datum     antal
2005-01-20  2
2005-01-21  1
2005-01-22  0
2005-01-23  3
0-raden kanske är överkurs, men är det andra möjligt med en sql-fråga?
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-01, 18:42 #4
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Självklart går det med en fråga:
Kod:
select LEFT(date_column,10) as mydate, count(*)
from mytable
group by mydate
eg0master är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:00.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017