0

我有一个这样的字符串:16:00我希望将它保存在我的 SQL Server 数据库中的一列中,该列的数据类型为time(7)...

当然,在我把它保存在那里之前,我需要将我的字符串转换为时间数据类型。

使用Convert.ToDateTime时,我得到一个错误:

无法将类型“System.DateTime”隐式转换为“System.TimeSpan”

那是因为我正在Convert.ToDateTime(myString)从我的数据库中保存到具有time(7)数据类型的实体的属性中......

time(7)还有其他方法可以将我的字符串转换为与SQL Server 中的数据类型兼容的格式吗?

4

4 回答 4

6

对应于 SQLtime数据类型的托管类型是TimeSpan(或TimeSpan?当可为空时),而不是DateTime- 请参阅映射 CLR 参数数据以获取类型转换列表。

您可以使用它TimeSpan.Parse(myString)来转换您的字符串。

于 2012-06-03T11:35:11.480 回答
0

使用 SQL Server 的Convert功能

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

CAST & CONVERT

于 2012-06-03T11:34:47.057 回答
0

你也可以这样使用

Convert.ToDateTime(myString).TimeOfDay();

这将返回时间。您可以将此值传递给 Sql 命令参数。

TimeOfDay返回TimeSpan对象。

TimeSpan tp = Convert.ToDateTime(myString).TimeOfDay();
于 2016-03-07T09:48:28.383 回答
-1

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

缺少其他参数。请查看DateTime.TryParseExact文档。但基本上它会将您的字符串从您指定的格式转换为 dateTime。

于 2012-06-03T11:32:56.610 回答