无法分别解析日期和时间

时间:2014-10-24 17:24:51

标签: .net asp.net-mvc-4 datetime

我有以下代码从SQL数据读取器读取数据并将其放入集合中。

while (sdr.Read())
{
    itemFeed.Add(new Item
    {
        itemTypeId = (int)sdr.GetValue(0),
        itemDate = (DateTime)sdr.GetValue(5), //Incoming: 2014-09-07
        itemTime = (DateTime)sdr.GetValue(6), //Incoming: 21:29:18.1030000
    });
    i++;
}

问题是当2014-09-07的传入值转换为日期时间时,它会自动为其添加时间并且变为2014-09-07T00:00:00,并且由于格式无效而导致它失败的时间。

据我所知,这是因为它是一个日期时间对象,但在.net中没有单独的日期和时间对象,所以我如何分别解析它们呢?

1 个答案:

答案 0 :(得分:1)

您可能应该在数据库中存储一个datetime(或datetime2),而不是将datetime字段分开。但是要解决转换问题 - 请考虑SQL Server中的time映射到.NET中的TimeSpan

var date = (DateTime)sdr.GetValue(5);
var time = (TimeSpan)sdr.GetValue(6);
var dateTime = date.Add(time);