2013-03-11 16 views

Odpowiedz

8

Chyba masz na myśli FROM_UNIXTIME

GROUP BY 
    DATE_FORMAT(FROM_UNIXTIME(time_column), '%Y %m %d %H')) 
4
SELECT * 
FROM table 
GROUP BY DATE_FORMAT(FROM_UNIXTIME(time_col_name), '%H') 

Sprawdź MySQL's Date documentation.

Edit:

Zastosowanie DATE_FORMAT zamiast wiarygodnie określić format godziny wrócił. Zobacz DATE_FORMAT documentation. Uwaga: Format% H zwróci wartość godziny w formacie 00, 01, ... 23.

+1

Hour (FROM_UNIXTIME (...)) robi praca. –

+0

Spróbuj przenieść to do klauzuli "WYBIERZ" i odwołując się do aliasu. – Aiias

1

Coś jak:

SELECT HOUR(FROM_UNIXTIME(unixCol)) 
FROM tbl 
GROUP BY HOUR(FROM_UNIXTIME(unixCol)) 

HOUR rozpakuje godzinę po datownika UNIX jest przykryty do daty.

See the documentation

0

Spróbuj umieścić te dane w zmiennej DB jak data i następnie powtórzyć je.

$timestamp = strtotime($db_data); 
echo date("m-d-Y", $timestamp); 
+0

Czy rzeczywiście czytasz pytanie OP? –

0

wiem, że to kilka lat po początkowym pytaniu ale jeśli masz do czynienia z większych zbiorów danych może to trwać dłużej, aby wykonać ze względu na wywołanie 2 funkcje dla każdego wiersza w zestawie zapytań.

udało mi się golić kilka sekund od mojego czasu za pomocą trochę arytmetyki modularnej

GROUP BY FLOOR(time_col/(60*60) MOD 24) 

Hope this helps :)

Powiązane problemy