2011-04-08 113 views
0

我需要转换为int为DateTimeint转换为DateTime

var a = reader.ValueOrDefault<DateTime>(beginWorkHour); 
//........................................................ 

    internal static T ValueOrDefault<T>(this IDataReader reader, int ordinal) { 
       if (reader.IsDBNull(ordinal)) 
        return default(T); 

       return (T) reader.GetValue(ordinal); 
      } 

此代码抛出一个错误“指定的转换无效”。
reader.GetValue(ordinal)返回12.

+1

将12转换为DateTime的逻辑是什么? – 2011-04-08 06:20:03

+0

我需要填写WorkingHourns的结构。我是否使用TimeSpan而不是DateTime? – Alexandre 2011-04-08 06:37:46

+0

也许。看到我的答案。 – 2011-04-08 06:40:17

回答

1

所以,如果它返回一个int,你为什么试图读取它作为DateTime?我原以为你会想要类似的东西:

int hour = reader.ValueOrDefault<int>(beginWorkHour); 
DateTime time = new DateTime(2000, 1, 1, hour, 0, 0); 

或类似的东西。 (我只是猜测,给定了变量名称。)

你怎么样想要要转换成日期和时间的整数?

2

intint;你仍然需要像那样获取它,说实话这是不完全清楚你的意思究竟如何,但猜测这听起来像你想:

DateTime time = 
    DateTime.Today.AddHours(reader.ValueOrDefault<int>(beginWorkHour)); 
2

在您的新注释的光,也许这就是你在之后:

var hours = TimeSpan.FromHours(reader.ValueOrDefault<int>(beginWorkHour));