我需要使用LINQ将两个日期范围与记录列表进行比较,并且出于某种原因我陷入了困境。我收到字符串格式的日期,我将转换为DateTime。我知道数据库中的特定日期范围内有数据,所以我应该回来记录。
public static string FilterStudentListInRelationToStaffByDateRange(
string GivenStaffID,
string SelectFilterOption,
string FromDate,
string ToDate)
{
var dt = DateTime.Parse(FromDate);
// var fff = String.Format("{0:d/M/yyyy hh:mm:ss}", dt);
var dt3 = DateTime.Parse(ToDate);
//var fff3 = String.Format("{0:d/M/yyyy hh:mm:ss}", dt3);
var x = (from b in queryList
where b.RelationshipDateStart >= dt && b.RelationshipDateEnd <= dt3
select b).ToList();
答案 0 :(得分:1)
日期/时间解析可能很烦人,特别是如果您处理不同的格式。
如果您知道格式,可以尝试使用DateTime.ParseExact
:
CultureInfo provider = CultureInfo.InvariantCulture;
string format = "d/M/yyyy hh:mm:ss";
try
{
var dt = DateTime.ParseExact(FromDate, format, provider);
var dt3 = DateTime.ParseExact(ToDate, format, provider);
var x = (from b in queryList
where b.RelationshipDateStart >= dt && b.RelationshipDateEnd <= dt3
select b).ToList();
}
catch (FormatException)
{
Console.WriteLine("Date is not in the correct format.");
}