我在 SQL Server 中有一个表,其中包含以下列
- ID(身份/主键)
- DestinationID(外键)
- 日期(日期字段)
- 时间(时间字段)
- DayOfWeek(Char(3)字段)即“MON”,“TUE”等。
我想按日期和时间排序数据,然后按 DayOfWeek 和时间排序。所以所有带日期的记录都出现在顶部,并按时间排序,然后是 DayOfWeek 按时间排序。
我尝试了几种方法,但无法理解,我有以下代码
var qry = ctx.DestinationTimings.Where(x => x.DestinationID == this.ID)
.OrderBy(t => t.Date).ThenBy(t => t.Date != null)
.ThenBy(t => SqlFunctions.CharIndex(t.DayOfWeek + ",", "MON,TUE,WED,THU,FRI,SAT,SUN"))
.ThenBy(t => t.Time);