web-dev-qa-db-ja.com

.NETアプリケーションでSQL Server Timeデータ型を使用する方法は?

C#.netアプリケーションでSQL Server 2008に導入された時間データ型の使用方法を知っている人はいますか?私はそれを機能させようとしましたが、成功しませんでした。

54
rdk

MSDN記事 は、ADO.NETに関してSQL Server 2008で導入されたすべての新しい日付と時刻のデータ型をレビューします。ドキュメントが言うように:For System.Data.DbType.Time .NET Framework型を使用しますSystem.TimeSpan

52
Simen S

TimeSpanデータ型を目的に使用できると思います。 記事 は、ado.netでのTimeデータ型の使用を説明しています。

8
Lav

また、Microsoftの人々でさえ、sqlデータ型の時間をSystem.Timestampにマッピングすることを推奨する傾向があります。

sQL時間の範囲は00:00:00.0000000-23:59:59.9999999であるため

system.TimeSpanの範囲は10675199.02:48:05.4775808-10675199.02:48:05.4775807です

これはわずかに異なっており、厄介なランタイム範囲外エラーにつながる可能性があります。

5
Michael Sander

どのようにデータにアクセスしていますか?エンティティフレームワーク、StoredProceduresなどの使用.
日付の文字列表現を渡す必要がある場合は、必ず「yyyy-mm-dd hh:mm:ss」の形式で入力してください。そうしないと、dd/mm/yyyyのリスクが発生します対mm/dd/yyyyの混乱。 Entity FrameworkまたはDataSetsを使用している場合、DateTime.NowなどのDataTimeインスタンスにパラメーターを渡すだけです。

1

次のステートメントに似たものを使用して、datareaderを使用して読むことができます。

TimeSpan time = dr.GetTimeSpan(dr.GetOrdinal(“Time7FieldName”));
0
Imran Rizvi