我希望我的查询停止显示时间和日期。这是我尝试过的:
Query= (from z in ctx.Interactions
where z.ActivityDate <= StartDateTo
&& z.ActivityDate >= EndDateTo
&& z.Indepth == false
select new
{
Date = new DateTime(z.ActivityDate.Year, z.ActivityDate.Month, z.ActivityDate.Day),
Subject = z.Subject
}).ToList();
并且
Query= (from z in ctx.Interactions
where z.ActivityDate <= StartDateTo
&& z.ActivityDate >= EndDateTo
&& z.Indepth == false
select new
{
Date = z.ActivityDate.Date,
Subject = z.Subject
}).ToList();
两者都不起作用。
尝试应用字符串方法时 LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.
。
答案 0 :(得分:3)
您可以使用anyDate.ToString("ddMMyyyy");//any preferred format.
不确定这是否是您要找的!
答案 1 :(得分:2)
您的查询返回带有日期和时间的对象。主题属性。
在Date属性中传递DateTime对象。为了显示短日期,你有一个&#34; ToShortDateString()&#34;在约会上发挥作用。
如果您不想使用日期并且更喜欢选择字符串,请在linq查询中进行转换。
如果要返回字符串,请使用此选项:
var q = (from z in ctx.Interactions
where z.ActivityDate <= StartDateTo && z.ActivityDate >= EndDateTo && z.Indepth == false
select new { Date = z.ActivityDate.Date.ToShortDateString(), Subject = z.Subject }).ToList();
答案 2 :(得分:1)
ToShortDateString()可能对您有帮助。
Query= (from z in ctx.Interactions
where z.ActivityDate <= StartDateTo
&& z.ActivityDate >= EndDateTo
&& z.Indepth == false
select new
{
Date = z.ActivityDate.ToShortDateString(),
Subject = z.Subject
}).ToList();
答案 3 :(得分:1)
您需要在绑定时执行格式化。由于您没有显示实际的绑定代码,因此很难专门解决您的情况,但让我们看看您的查询中会发生什么:
Query= (from z in ctx.Interactions
where z.ActivityDate <= StartDateTo && z.ActivityDate >= EndDateTo && z.Indepth == false
select new { Date = z.ActivityDate.Date, Subject = z.Subject }).ToList();
LINQ处理此查询后,生成的Query
变量应属于List<DateTime>
类型。查询的工作方式将返回DateTime
的列表,格式如下:
2014-04-23 00:00:00
2014-03-28 00:00:00
etc...
为了绑定此而不是时间值,您需要在绑定时对列表的每个元素(或所需元素)调用ToString()
< /强>
假设您使用的是ListBox
或类似的东西,您可以写下以下内容:
foreach (var date in myList) //this is the resultant list from the query
{
listBox1.Items.Add(date.ToString("MM/dd/yyyy");
}
如果您确实绑定到DataSource
媒体资源,则需要将List<DateTime>
转换为带有格式化值的List<string>
。
答案 4 :(得分:0)
将日期转换为字符串,如下所示
string stringDate=string.empty;
stringDate=Convert.ToDateTime("2014-04-23 00:00:00").ToShortDateString();
它会输出像 2014年4月23日