C#.netアプリケーションでSQL Server 2008に導入された時間データ型の使用方法を知っている人はいますか?私はそれを機能させようとしましたが、成功しませんでした。
MSDN記事 は、ADO.NETに関してSQL Server 2008で導入されたすべての新しい日付と時刻のデータ型をレビューします。ドキュメントが言うように:For System.Data.DbType.Time
.NET Framework型を使用しますSystem.TimeSpan
TimeSpanデータ型を目的に使用できると思います。 記事 は、ado.netでのTimeデータ型の使用を説明しています。
また、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です
これはわずかに異なっており、厄介なランタイム範囲外エラーにつながる可能性があります。
どのようにデータにアクセスしていますか?エンティティフレームワーク、StoredProceduresなどの使用.
日付の文字列表現を渡す必要がある場合は、必ず「yyyy-mm-dd hh:mm:ss」の形式で入力してください。そうしないと、dd/mm/yyyyのリスクが発生します対mm/dd/yyyyの混乱。 Entity FrameworkまたはDataSetsを使用している場合、DateTime.NowなどのDataTimeインスタンスにパラメーターを渡すだけです。
次のステートメントに似たものを使用して、datareaderを使用して読むことができます。
TimeSpan time = dr.GetTimeSpan(dr.GetOrdinal(“Time7FieldName”));