2011-01-29 4 views
-2

Je souhaite grouper les enregistrements en heure ou en jour.Groupe MySQL DATETIME

Le tableau A ressemble: Le tableau A comporte deux colonnes: ID int, datetime record_time,

Par exemple, deux enregistrements ressemble à:

id record_time 
----------------------- 
1 2011-01-24 22:14:50 
2 2011-01-24 22:14:50 

Je veux groupe par heure. J'utilise la commande:

select * 
from A 
group by Hour(record_time); 

Cependant, il ne sort pas comme je le souhaite. Il sort uniquement le premier enregistrement. Le deuxième enregistrement ne montre pas.

+1

donner un exemple de votre résultat attendu. –

+1

Si vous voulez Pour grouper par heure, et l'heure est la même dans les deux cas, vous n'obtiendrez qu'un enregistrement, c'est ce que le groupe est pour .. Quelle réponse attendez-vous? – seppo0010

+0

Je me méprends sur "group by". – chnet

Répondre

0
SELECT * 
FROM A 
GROUP BY DATE_FORMAT(record_time, '%H') 

MISE À JOUR

SELECT * 
FROM A 
ORDER BY DATE_FORMAT(record_time, '%H%Y%m%d') 

Essayez cette ... juste ORDER BY (aucun groupement)

+0

Cela devrait se regrouper par heure (format 24 heures) –

+0

Il reste des sorties "1 2011-01-24 22:14:50 " – chnet

+0

Il ne reste que la sortie '1 2011-01-24 22: 14: 5 0 '. Je veux sortir deux enregistrements. – chnet

0

vous devez utiliser date_format, comme

group by date_format(record_time, '%Y%m%d%H'); 
+0

ne fonctionne toujours pas – chnet

+0

ouais, ne nous dit pas ne fonctionne pas, mettre à jour votre question avec votre sortie attendue ... – ajreal

1

Ce que vous appelez le regroupement des sons comme c'est en fait de tri. Changez group by en order by et voyez si cela vous apporte ce que vous voulez. Si par « groupe » tu veux dire en fait « je veux regrouper les lignes ensemble dans le jeu de résultats, voici ce dont vous avez besoin (et est appelé la commande).