0

次のような文字列があります: 16:00SQL 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?null 許容の場合)、notです。型変換のリストについては、「CLR パラメーター データのマッピング」DateTimeを参照してください。

を使用TimeSpan.Parse(myString)して文字列を変換できます。

于 2012-06-03T11:35:11.480 に答える
0

こんな使い方もできます

Convert.ToDateTime(myString).TimeOfDay();

これは時間を返します。そして、この値を Sql コマンド パラメータに渡すことができます。

TimeOfDayオブジェクトを返しTimeSpanます。

TimeSpan tp = Convert.ToDateTime(myString).TimeOfDay();
于 2016-03-07T09:48:28.383 に答える
0

SQL ServerのConvert機能を利用する

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

キャストと変換を見る

于 2012-06-03T11:34:47.057 に答える
-1

Convert.ToDateTime使用する代わりにDateTime.TryParseExact(yourTimeString, "HH:mm",<other parameters>, out dateTime);

他のパラメーターがありません。DateTime.TryParseExactドキュメントを参照してください。ただし、基本的には、指定した形式から文字列を dateTime に変換します。

于 2012-06-03T11:32:56.610 に答える