如何将字符串转换为日期时间,然后获取最低日期

时间:2013-09-24 07:34:52

标签: c# linq

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

如何获得最低日期记录?

4 个答案:

答案 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));