2012-06-03 129 views
0

我有一個字符串是這樣的:16:00,我希望它被保存在其中有一個time(7)數據類型的列我的SQL Server數據庫...字符串轉換爲時間澄清

當然,之前我將它保存在那裏,我需要在時間數據類型中轉換我的字符串。

在使用Convert.ToDateTime,我得到一個錯誤:

Cannot implicitly convert type 'System.DateTime' to 'System.TimeSpan'

那是因爲我現在的儲蓄Convert.ToDateTime(myString)到從我的數據庫具有time(7)數據類型的實體的屬性...

是否有其他方式將我的字符串轉換爲與SQL Server中的time(7)數據類型兼容的格式?

回答

6

對應於SQL time數據類型的託管類型是TimeSpan(或TimeSpan?時可爲空),不DateTime - 指Mapping CLR Parameter Data爲類型轉換列表。

您可以使用TimeSpan.Parse(myString)來轉換您的字符串。

-1

代替Convert.ToDateTime使用DateTime.TryParseExact(yourTimeString, "HH:mm",<other parameters>, out dateTime);

其他參數丟失。請查看DateTime.TryParseExact文檔。但基本上它會將您的字符串從您指定的格式轉換爲dateTime。

+0

不會修復錯誤,'DateTime'仍然無法轉換爲'TimeSpan',無論您如何創建它。 – svick

0

使用SQL Server的Convert功能

convert(DateTime, '20:10:00:000', 114); 

CAST & CONVERT

0

您也可以使用這樣的

Convert.ToDateTime(myString).TimeOfDay(); 

這將返回的時間。您可以將此值傳遞給Sql命令參數。

TimeOfDay返回TimeSpan對象。

TimeSpan tp = Convert.ToDateTime(myString).TimeOfDay();