我有一个这样的字符串:16:00
我希望它保存在我的SQL Server数据库中的数据类型为time(7)
...
当然,在我将其保存在那里之前,我需要在时间数据类型中转换我的字符串。
使用Convert.ToDateTime
后,出现错误:
无法将类型'System.DateTime'隐式转换为'System.TimeSpan'
这是因为我将Convert.ToDateTime(myString)
保存到我的数据库的实体属性中,该数据库具有time(7)
数据类型......
是否有其他方法可以将我的字符串转换为与SQL Server中的time(7)
数据类型兼容的格式?
答案 0 :(得分:6)
与SQL time
数据类型对应的托管类型为TimeSpan
(或可为空时为TimeSpan?
),而不是DateTime
- 请参阅Mapping CLR Parameter Data类型转换列表。
您可以使用TimeSpan.Parse(myString)
转换字符串。
答案 1 :(得分:0)
答案 2 :(得分:0)
您也可以像这样使用它
Convert.ToDateTime(myString).TimeOfDay();
这将返回时间。并且您可以将此值传递给Sql命令参数。
TimeOfDay
会返回TimeSpan
个对象。
TimeSpan tp = Convert.ToDateTime(myString).TimeOfDay();
答案 3 :(得分:-1)
而不是Convert.ToDateTime
使用DateTime.TryParseExact(yourTimeString, "HH:mm",<other parameters>, out dateTime);
缺少其他参数。请查看DateTime.TryParseExact
文档。但基本上它会根据您指定的格式将您的字符串转换为dateTime。