webForumDet fria alternativet

Plocka ut med datumintervall

17 svar · 259 visningar · startad av nkrantz

nkrantzMedlem sedan apr. 2002830 inlägg
#1

Hallå!

Går följande att göra och hur gör man isf:

Jag har en tabell med id och ett timestamp på medlemmar. Jag skulle vilja räkna hur många medlemmar per dag som registeras. Alltså söka på intervallen mellan timestampsen.

// Nippe

SPiNMedlem sedan mars 20007 896 inlägg
#2

Vad använder du för DBMS?

nkrantzMedlem sedan apr. 2002830 inlägg
#3

mySQL... timstampet är sparat som UNIXtimestamp...

Engine^Medlem sedan dec. 20003 887 inlägg
#4

Nu vet jag inte hur man formaterar DATE i MySQL, men det här fungerar bra i Access, så du kanske kan lösa formateringen själv?

SELECT Count(*)
FROM tabell
GROUP BY FormatDateTime(timestamp)

red. Jag hittade inget format i MySQL som heter UNIXTimestamp. Endast olika Timestamp. Timestamp(14) t.ex..

SPiNMedlem sedan mars 20007 896 inlägg
#5

Funktionen heter FROM_UNIXTIMESTAMP() i MySQL.

Testa:

SELET COUNT(*)
FROM tabell
GROUP BY FROM_UNIXTIMESTAMP(tabell.field, "%Y %M %D");
nkrantzMedlem sedan apr. 2002830 inlägg
#6
SELECT COUNT(payment_id)
FROM tbl_payment
GROUP BY FROM_UNIXTIMESTAMP(tbl_payment.timestamp, "%Y %M %D");

Funkar inte, får inte heller något felmeddelande!

Vad kan detta bero på?

// Nippe

SPiNMedlem sedan mars 20007 896 inlägg
#7

Får du ett 0-värde eller ingen utskrift alls?

nkrantzMedlem sedan apr. 2002830 inlägg
#8

Alltså, jag menar, jag får ett felmeddelande, men inget meddelande.. hm.. Så här menar jag (från phpMyAdmin)
Error
SQL-query:

SELECT COUNT(*)
FROM tbl_payment
GROUP BY FROM_UNIXTIME(tbl_payment.timestamp, "%Y %M %D");
MySQL said:

Å så säger MySQL inget.. lite dumt tycker jag!

// Nippe

nkrantzMedlem sedan apr. 2002830 inlägg
#9

sorry... mitt fel.. så här menar jag att det blir:
Error
SQL-query:

SELECT COUNT(payment_id)
FROM tbl_payment
GROUP BY FROM_UNIXTIMESTAMP(tbl_payment.timestamp, "%Y %M %D");
MySQL said: You have an error in your SQL syntax near '(tbl_payment.timestamp, "%Y %M %D")' at line 3

SPiNMedlem sedan mars 20007 896 inlägg
#10

Ett nytt försök då, först konverterar vi ditt fält till typen DATE och gör sedan en DATE_FORMAT:

SELECT COUNT(payment_id)
FROM tbl_payment
GROUP BY DATE_FORMAT( CAST( tbl_payment.timestamp AS DATE ), "%Y %M %D" );
nkrantzMedlem sedan apr. 2002830 inlägg
#11

Eh.. Kom på att fältet är egentligen ett varchar fält där ett timestampen sparas från PHP, kanske kan vara detta som är problemet?

SPiNMedlem sedan mars 20007 896 inlägg
#12

Ja, jag skrev fel förut. Det finns ingen FROM_UNIXTIMESTAMP, den heter FROM_UNIXTIME som du tydligen hade märkt enligt inlägget innan. :)

SPiNMedlem sedan mars 20007 896 inlägg
#13

Aha! Testa då med mitt CAST-exempel om fältet är VARCHAR.

nkrantzMedlem sedan apr. 2002830 inlägg
#14

Nä du...

Error
SQL-query:

SELECT COUNT(payment_id)
FROM tbl_payment
GROUP BY DATE_FORMAT( CAST( tbl_payment.timestamp AS DATE ), "%Y %M %D" );
MySQL said: You have an error in your SQL syntax near '( tbl_payment.timestamp AS DATE ), "%Y %M %D" )' at line 3

SPiNMedlem sedan mars 20007 896 inlägg
#15

Då verkar det som att du använder en lite äldre MySQL-version? CAST ska vara tillgängligt f.o.m. 4.0.2.

Jag är tom på fler idéer, tyvärr.

nkrantzMedlem sedan apr. 2002830 inlägg
#16

Ah... Då var det där problemet låg :( Kör MySQL 3.23.33...

Tack ändå för ditt engagemang ;) Får bygga någon funktion i PHP istället, så vi syns säkert i det forumet istället ;)

// Nippe

Engine^Medlem sedan dec. 20003 887 inlägg
#17

Har du inga möjligheter att uppgradera MySQL? Det skulle väl vara den bästa lösningen och en varm rekomendation.

SPiNMedlem sedan mars 20007 896 inlägg
#18

FROM_UNIXTIME verkar ju annars fungera med 3.23.33:an:

SELECT COUNT( tbl_payment.payment_id )
FROM tbl_payment
GROUP BY FROM_UNIXTIME( TIMESTAMP( tbl_payment.timestamp ), "%Y %M %D" );

Konverterar först till ett TIMESTAMP-värde och kör sedan funktionen FROM_UNIXTIME.

Red.} Doh, TIMESTAMP-funktionen däremot är från 4.1.1... Du får göra det i PHP då, syns där. ;)

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)