2013-03-11 23 views

cevap

8

Sana 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') 

MySQL'in Date documentation'a bakın.

Düzenleme: yerine güvenilir bir saat biçimi iade belirlemek için

kullanın DATE_FORMAT. Bakınız DATE_FORMAT documentation. Not: formatlı H% formatında 00, 01 saatlik bir değer dönecektir ... gibi 23.

+1

SAAT (FROM_UNIXTIME (...)) doesnt iş biraz kullanarak zamanımın kapalı birkaç saniye tıraş başardı. –

+0

"SELECT" ifadesine taşımaya ve diğer ada sahiplerine başvurmaya çalışın. – Aiias

1

şey:

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

HOUR UNIX zaman damgası sonra saat çıkartacaktır bir tarihe dönüştürülür.

See the documentation

0

DB tarihi olarak değişken veri ve daha sonra yankı olduğunu koyarak deneyin demek düşünüyorum.

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

OP'nin sorusunu gerçekten okudunuz mu? –

0

Ben bu ilk sorudan sonra birkaç yıl olduğunu biliyorum ama sen daha büyük veri kümelerinde uğraşıyoruz eğer bu durum sorgu kümesindeki her satır için 2 fonksiyonları çağrılmasına yürütmek için daha uzun sürebilir.

Ben modüler aritmetik bu yardımcı olur

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

Hope :)

İlgili konular