0

记录来自数据库,日期为字符串格式。我正在使用 LINQMin()查询来选择日期最短的记录。LINQ 不允许我使用Convert.ToDateTime().

如何获得最低日期记录?

4

4 回答 4

1

你可以做类似的事情

.Min(ob => System.Convert.ToDateTime(ob.DateProperty));

这样,在检查最低值之前,值就会被转换。

于 2013-09-24T07:46:23.303 回答
0

“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()强制它执行查询然后进行转换。

于 2013-09-24T07:44:32.087 回答
0

有一种方法是在您的 LINQ 请求中使用 Orderby 方法,在您希望排序的 (datetime) 字段上使用 Func(),然后选择第一个元素。

它不是很干净,因为我会在数据库中使用日期时间,但它应该可以工作。

于 2013-09-24T07:44:43.350 回答
0

查看一些代码示例会很有用。但这可能会有所帮助。

    var minDateTime = strings.Min(s => DateTime.Parse(s));
于 2013-09-24T08:03:57.467 回答