是否可以构建一个查询,在该查询中,我可以将日期名称从日期检索到单独的列或变量中?
我知道我可以很容易地在.NET端执行此操作,但希望它在查询中。
答案 0 :(得分:4)
您也可以使用SqlFunctions ......
var results=context.Listings
.Select(l=>System.Data.Entity.SqlServer.SqlFunctions.DateName("dw",l.modify_date));
当然,这仅在使用SQL Server时有效。跨数据库的方法是使用具有已知日期的EntityFunctions.DateDiff来获取任何与已知的先前星期日之间的天数,然后是模数7,然后转换为字符串。
答案 1 :(得分:1)
您可能需要构建一个返回日期名称的查询,然后在日期编号中加入您的结果
int[] dayNum={1,2,3,4,5,6,7};
var result = from d in dayNum
let dayOfWeek= (d == 1 ? "Monday" :
d==2 ? "Tuesday" :
d==3 ? "Wednesday" :
d==4 ? "Thursday" :
d==5 ? "Friday" :
d==6 ? "Saturday" :
d==7 ? "Sunday":"")
let dn = d
group d by new {dayOfWeek, dn} into dw
select new { dw.Key.dayOfWeek, dw.Key.dn};
结果将是