var rslt= (from t in Tnews
where t.SendTime.HasValue
&& t.SendTime.Value.Year==2012
&& t.SendTime.Value.Month==8
&& t.SendTime.Value.Day==20
select t);
或者
var someDate = new DateTime(2012,8,20);
var rslt= (from t in Tnews
where t.SendTime.HasValue
&& t.SendTime.Value.Date==someDate
select t);
会有帮助吗?
更新:你试过不好。刚刚跑了这个:
class Program
{
public class TNews
{
public DateTime? SendTime { get; set; }
public string Id;
}
static void Main(string[] args)
{
var tnews = new TNews[]
{
new TNews { SendTime = new DateTime(2012,8,20), Id="2012-08-20" },
new TNews { SendTime = new DateTime(2012,8,20,12,20,0), Id="2012-08-20 12:20" },
new TNews { SendTime = new DateTime(2012,8,21), Id="2012-08-21" },
new TNews { SendTime = null, Id="null" },
};
var someDate = new DateTime(2012, 8, 20);
var rslt = (from t in tnews
where t.SendTime.HasValue
&& t.SendTime.Value.Date == someDate
select t);
foreach (var t in rslt)
{
Console.WriteLine(t.Id);
}
}
}
输出是:
2012-08-20
2012-08-20 12:20
Press any key to continue . . .