Linq To Sql - 从日期获取工作日名称

时间:2015-06-09 10:50:00

标签: linq linq-to-sql

是否可以构建一个查询,在该查询中,我可以将日期名称从日期检索到单独的列或变量中?

我知道我可以很容易地在.NET端执行此操作,但希望它在查询中。

2 个答案:

答案 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};

结果将是

enter image description here