我正在使用Linq查询但收到错误
Cannot apply operator >= to operands of type system.datetime and string
这是我的linq查询
var myBirthDate= BirthDate.ToString("yyyy-MM-dd HH':'mm':'ss");
var myList= (from myEntity in myEntityRepository.AsQueryable()
where
myEntity.id== Id &&
myEntity.birthdate >= myBirthDate
select myEntity).Take(1);
我将日期转换为yyyy-MM-dd HH':'mm':'ss
格式,因为我从客户端获取其他格式。
如何避免此错误?
答案 0 :(得分:1)
使用ToString()
方法后,这将导致字符串,而不是日期时间
var myBirthDate= BirthDate.ToString("yyyy-MM-dd HH':'mm':'ss");
使用DateTime.TryParse从客户端提供的值中获取DateTime。然后在查询中使用它。
答案 1 :(得分:1)
如果您收到的日期与当前文化不同,您可以使用DateTime.Parse转换为正确的DateTime变量。
当您使用ToString将DateTime类型转换为格式化的日期字符串时,myBirthDate变量将变为String,因此> =赢得了预期的工作。
以下是一个示例:
using System;
public class Example
{
public static void Main()
{
string[] dateStrings = {"2008-05-01T07:34:42-5:00",
"2008-05-01 7:34:42Z",
"Thu, 01 May 2008 07:34:42 GMT"};
foreach (string dateString in dateStrings)
{
DateTime convertedDate = DateTime.Parse(dateString);
Console.WriteLine("Converted {0} to {1} time {2}",
dateString,
convertedDate.Kind.ToString(),
convertedDate);
}
}
}