2011-03-28 5 views
16

빠른 답변입니다.
Linq to sql에서 오름차순으로 정렬 된 동일한 datetime의 시간 부분에 따라 내림차순으로 datetime 필드를 정렬해야합니다. 여기서 필요한 결과의 예

[시리얼] 일 (MM-DD-YYYY : HH-MM-SS)]
1 2008년 3월 13일 : 10-10-02
2 3-13 -2008 : 10-12-60
3 2008년 3월 12일 : 12-05-55


Linq to sql : datetime desc로 정렬 한 다음 데이터의 시간 부분에 따라 오름차순?

나는 시도 :

return query.OrderByDescending(c=> c.Time).ThenBy(c=> c.Time.TimeOfDay); 


그리고 루게릭 병

query.OrderByDescending(c => c.Time).ThenBy(c => c.Time.Hour).ThenBy(c=> c.Time.Minute).ThenBy(c=> c.Time.Second); 


을하지만 작업 듯 결코 : O를 시도했다. 제안 사항이 있으십니까?

답변

48

정렬에 DateTimeOfDay 속성을 사용하십시오.

return query 
    .OrderByDescending(c=> c.Time.Date) 
    .ThenBy(c=> c.Time.TimeOfDay); 
+1

앗 그래 동시 대답은 다시 – thmshd

+0

먼저 작업 대답을! 우승자! 고마워요. – Galilyou

14

문제는 "시간"에 날짜와 시간 정보가 포함되어있어 이미 완전히 정렬되어 있다는 점입니다. 먼저 날짜 부분을 가지고 정렬해야합니다.

return query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay); 

는 테스트하지 :) 같은 타임 스탬프 어떤 기록이있는 경우에만 다음 orderbys이 효력이 있도록

2

내가 먼저 orderByDescending는 날짜 (날짜 + 시간)으로 모든 것을 정렬 생각합니다.

은 잘 작동합니다 틱이

query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay) 
0

돌리을 시도해보십시오

return query.OrderByDescending(c=> c.Time.Ticks)