Linq – 从DateTime中选择日期

我有一个Linq结果,我需要从DateTime选择Date
我的查询是这样的:

 var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select new { xx.TEMPLATE_ID, xx.TEMPLATE_NAME, //CREATED_DATE = xx.CREATED_DATE.Value.Date //CREATED_DATE = EntityFunctions.TruncateTime(xx.CREATED_DATE) xx.CREATED_DATE }).ToList(); 

那可能吗? 任何帮助将不胜感激。

 CREATED_DATE - `datetime` datatype 

实际上,我将它绑定到Control作为DataSource ,控件显示Date and Time 。但我想只显示date

当我尝试使用CREATED_DATE = xx.CREATED_DATE.Value.Date ,它会给出如下错误:

LINQ to Entities不支持指定的类型成员“Date”。 仅支持初始化程序,实体成员和实体导航属性。

如果是出于演示目的,那么您可以使用DataFormatString属性。 例如,如果要将数据源绑定到GridView,则可以执行以下操作:

  

否则,您可以使用EntityFunctions.TruncateTime()返回没有时间部分的输入日期。

 EntityFunctions.TruncateTime(xx.CREATED_DATE) 

你的查询就像;

 var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select new { xx.TEMPLATE_ID, xx.TEMPLATE_NAME, EntityFunctions.TruncateTime(xx.CREATED_DATE) //new like }).ToList(); 

也许这个?

 var qry = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select new { xx.TEMPLATE_ID, xx.TEMPLATE_NAME, xx.xx.CREATED_DATE }); var UserTemplates = qry.AsEnumerable().Select(xx => new { xx.TEMPLATE_ID, xx.TEMPLATE_NAME, xx.CREATED_DATE.Value.Date }).ToList(); 
 var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select xx).AsEnumerable() .Select( i=> new { i.TEMPLATE_ID, i.TEMPLATE_NAME, CREATED_DATE = i.CREATED_DATE.ToString("M/d/yyyy"), i.CREATED_DATE }).ToList(); 

用这个…它对我有用..

 var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select new { xx.TEMPLATE_ID, xx.TEMPLATE_NAME, CREATED_DATE=SqlFunctions.DateName("day", xx.CREATED_DATE).Trim() + "/" + SqlFunctions.StringConvert((double)xx.CREATED_DATE.Value.Month).TrimStart() + "/" + SqlFunctions.DateName("year", xx.CREATED_DATE) }).ToList(); 

输出日期为dd / MM / yyyy格式

试试这个,

 var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select new Attributes { TEMPLATE_ID=xx.TEMPLATE_ID, TEMPLATE_NAME=xx.TEMPLATE_NAME, dateCreatd = xx.CREATED_DATE }) .AsEnumerable() .select(p=>new Attributes { TEMPLATE_ID =p.TEMPLATE_ID, TEMPLATE_NAME=p.TEMPLATE_NAME, dateString = p.dateCreatd .Value.toString("YYYY-MMM-dd") }).ToList(); public class Attributes { public string TEMPLATE_ID { get; set; } public string TEMPLATE_NAME { get; set } public DateTime dateCreatd { get; set; } public string dateString { get; set; } } 

希望它对你有用