2011-04-08 157 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));