看來,你必須明確地投/在T-SQL中列轉換爲任意日期時間或時間跨度取決於您的需要。
如果你的時間表示一天中的時間(即下午4:15)
string sql = @"SELECT CONVERT(DATETIME, InTime) AS CheckInTime FROM TimeLog";
var checkInTimes = _conn.Query<DateTime>(sql).ToList();
如果你的時間表示一天中的可空時間(即下午4:15或空)
要處理空時,只需將目標.Net類型更改爲可空(DateTime?):
// Note: the OutTime column is nullable
string sql = @"SELECT CONVERT(DATETIME, OutTime) AS CheckOutTime FROM TimeLog";
var checkOutTimes = _conn.Query<DateTime?>(sql).ToList();
請注意,生成的DateTime對象的日期部分將被設置爲1900-01-01。
如果你的時間表示的時間量(如2小時47分運行時間)
在這種情況下,最好是轉化爲時間跨度,這將不包括無效1900日期,但也做不允許在的ToString AM/PM格式()
string sql = @"SELECT RunningTime FROM TimeLog";
var movieLength = _conn.Query<TimeSpan>(sql).ToList();
感謝莫羅指出這個用例。
好點!雖然它可能取決於我沒有提到的一個因素:時間(7)是用來表示一段時間還是表示一天的時間?如果有人在尋找金額,那麼這是正確的方法。 –