Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Mysql ongelma

Lemtz81 [27.06.2007 11:01:51]

#

Moro

pieni ongelma datan esittämisessä.
Kerään dataa lennosta lisäämällä sitä tauluun johon lisään current_timestampin ja nyt haluaisin näyttää sen taulukossa sitten että gruuppaisin ne tunneittain.
miten ihmeessä saan sen tehtyä, GROUP By Time ei toimaa.

kayttaja-2791 [27.06.2007 11:16:58]

#

Sinulla pitää ennen grouppausta (ryhmitystä) esittää aika siten että jokaiselle tunnille tulee erilainen merkintä. Eli muuta päiväys vaikka muotoon dd.mm.yyyy hh:mm (pseudoa).

Tuo muunto onnistuu vaikka mysql:n FROM_UNIXTIME-funktiolla:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_from-unixtime

Eli tuosta vain tekemään oma muunnos:

mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
    ->                      '%Y %D %M %h:%i:%s %x');
        -> '2003 6th August 06:22:58 2003'

Lemtz81 [27.06.2007 11:30:09]

#

Hmm...
palauttaa vain yhden rivin, vaikka tiedän että siellä on tavaraa joka tunnille.

Lause on

SELECT COUNT(*) as activity,FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:00:00') as Hour FROM `hwdata` WHERE `PageId` = '1' AND Date(`Time`) = '2007-06-27' GROUP BY `Hour`

ja palauttaa vain
activity Time
2 2007 27th June 11:00:00

jotain on kyllä väärin lauseessa....Tuo unixtime?

Hycke [27.06.2007 12:02:46]

#

Timestamp palauttaa sen hetkisen ajan, joten saat aina vain yhden tuloksen.
Vaihda tilalle sarake johon timestamp tallennetaan.
Jotenkin näin...

select	sum(1) as Activity
,	Hour(päivitetty_sarake) as Hour
from	hwdata
where	--tähän ehtoja
group by Hour(päivitetty_sarake)

Lemtz81 [27.06.2007 12:18:40]

#

jepa

löysin jo ratkaisun

SELECT HOUR(`Time`) as Hour,COUNT(*) FROM `pages` WHERE `Id` = 'jotain' AND DATE(`Time`) = 'HALUTTU_PAIVA' GROUP BY Hour

kiitoksia avustuksesta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta