记录来自数据库,日期是字符串格式。我正在使用LINQ Min()
查询来选择日期最短的记录。 LINQ不允许我使用Convert.ToDateTime()
。
如何获得最低日期记录?
答案 0 :(得分:1)
您可以执行类似
的操作.Min(ob => System.Convert.ToDateTime(ob.DateProperty));
这样,在检查最低值之前,会转换该值。
答案 1 :(得分:0)
你是什么意思“linq不允许我Convert.ToDateTime()”?
你不能这样做:
DateTime minDate = listOfStrings.Select(x => Convert.ToDateTime(x)).Min();
...
如果字符串不是由Convert.ToDateTime()
处理的日期/时间格式,您可能需要使用适当的格式字符串查看DateTime.ParseExact()
。
编辑:抱歉,刚刚意识到另一种可能性。你的意思是你不能执行Convert.ToDateTime()
因为你正在使用LINQ对SQL而言它在表达式中不可用吗?如果是这样,请尝试:
DateTime minDate = listOfStrings.ToList().Select(x => Convert.ToDateTime(x)).Min();
..使用ToList()
强制它执行查询,然后转换。
答案 2 :(得分:0)
有一种方法可以在LINQ请求中使用Orderby方法, 在你希望订购的(日期时间)字段上使用Func(),然后选择第一个元素。
它不是很干净,因为我会在数据库中使用日期时间,但它应该可以工作。
答案 3 :(得分:0)
查看一些代码示例会很有用。但这可能有所帮助。
var minDateTime = strings.Min(s => DateTime.Parse(s));