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