J'ai une colonne de date dans le tableau
ColumnName: event_timestamp 2015-06-01 15:23:31.000 2015-06-01 15:25:21.000 2015-06-03 09:00:41.000 2015-06-03 09:14:49.000 2015-06-03 09:15:03.000 2015-06-03 09:15:23.000 2015-06-06 08:40:06.000 2015-06-06 08:40:19.000 2015-06-06 11:13:35.000 2015-06-06 11:13:53.000 2015-06-06 11:15:04.000 2015-06-06 11:15:30.000 2015-06-09 15:08:13.000 2015-06-09 15:08:33.000 2015-06-09 15:08:45.000 2015-06-09 15:09:05.000
Production attendue
2015-06-06 2015-06-09
J'ai essayé mais échoué
SELECT CONVERT(datetime,MAX(myDate),103), (MAX(CONVERT(datetime,mydate,103)))-1 as DT FROM ( SELECT DISTINCT (CONVERT(VARCHAR,events.event_timestamp, 103)) myDate FROM events Where event_timestamp Between '01-Jun-15 11:14:40 AM' AND '11-Jun-15 11:14:40 AM' ) tbl
Utilisez Grouper par et Clause de command avec Desc puis prenez les 2 meilleurs loggings
Select TOP 2 CONVERT(date, datecol) From #t Group By CONVERT(date, datecol) Order By CONVERT(date, datecol) Desc
Voir l'exemple de travail
Vous pourriez faire ceci:
-- grabs top 2 descending by date select top 2 distinctDates from ( -- gets the distinct dates between your date range select distinct convert(date, mydate) as distinctDates FROM events e where e.timestamp Between '01-Jun-15 11:14:40 AM' AND '11-Jun-15 11:14:40 AM' ) dt order by distinctDates desc
Un moyen facile de le faire est de faire un "GROUP BY" et un "LIMIT 2". Vous voudrez vous regrouper par date (n'oubliez pas de ne pas tenir count du time), puis limitez vos résultats à 2. Voici un lien vers ces deux éléments.
LIMIT: http://www.w3schools.com/sql/sql_top.asp GROUPE PAR: https://dev.mysql.com/doc/refman/5.5/fr/group-by-handling.html