orderby - Linq to sql: ¿Orden por fecha desc, luego orden por la parte de tiempo del ascenso de datos?
order list linq vb net (4)
Esta es una rápida
En Linq to sql, necesito ordenar por un campo de fecha y hora descendente y luego ordenar por la parte de tiempo de la misma fecha y hora de archivo ascendente. Aquí hay un ejemplo del resultado necesario:
[Serie] [Fecha (mm-dd-aaaa: hh-MM-ss)]
1 3-13-2008: 10-10-02
2 3-13-2008: 10-12-60
3 3-12-2008: 12-05-55
Lo intenté :
return query.OrderByDescending(c=> c.Time).ThenBy(c=> c.Time.TimeOfDay);
Y también intenté:
query.OrderByDescending(c => c.Time).ThenBy(c => c.Time.Hour).ThenBy(c=> c.Time.Minute).ThenBy(c=> c.Time.Second);
pero nunca parecía funcionar. ¿Alguna sugerencia?
Convertirlo en ticks también funcionará:
return query.OrderByDescending(c=> c.Time.Ticks)
Creo que first orderByDescending ordena todo por fecha y hora (fecha + hora), por lo que los siguientes orderbys solo serán efectivos si tiene registros con la misma marca de tiempo.
Prueba esto
query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay)
El problema es que "Hora" contiene información de fecha y hora, por lo tanto, ya está ordenando por completo. Tendrías que tomar la parte de la fecha para ordenar primero.
return query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay);
No probado :)
Use las propiedades de Date
y TimeOfDay
para la clasificación.
return query
.OrderByDescending(c=> c.Time.Date)
.ThenBy(c=> c.Time.TimeOfDay);