2011-03-14 3 views

Odpowiedz

4

Myślę, że możesz użyć typu danych TimeSpan dla swojego celu. Tutaj jest article, który wyjaśnia użycie Typu danych Czas w ado.net

1

W jaki sposób uzyskujesz dostęp do danych? Korzystanie z Entity Frameworks, StoredProcedures itp.
Jeśli musisz przekazać ciąg znaków reprezentujący datę, upewnij się, że robisz to w formacie "yyyy-mm-dd hh: mm: ss". W innym przypadku ryzykujesz dd/mm/rrrr vs mm/dd/rrrr zamieszanie. Jeśli używasz Entity Framework lub DataSetów następnie należy po prostu przekazać parametr instancji DATATIME np DateTime.Now

+0

Używam aktywnego rekordu zamku, aby uzyskać dostęp do danych – rdk

39

Oto MSDN article że wszystkie opinie nową datę i godzinę typy danych wprowadzonych w SQL Server 2008 w odniesieniu do ADO. NETTO. Jak mówi dokument: Dla System.Data.DbType.Time byłoby użyć typ .NET Framework System.TimeSpan

5

Także nawet ludzie z Microsoft zazwyczaj zaleca mapowanie czas typ danych SQL do System.Timestamp nie polecam robić tak,

ponieważ Przedział czasu SQL to 00: 00: 00,0000000 - 23: 59: 59,9999999

ubezpieczeniowy zakres System.TimeSpan jest 10675199,02: 48: 05,4775808 - 10675199,02: 48: 05,4775807

który jest tylko nieznacznie różnić i może prowadzić do nieprzyjemnych błędów poza zakresem.

+2

Co polecasz? – Roberto

+0

W zależności od tego, jakie masz otoczenie, zazwyczaj przechowuję sekundy lub nawet milisekundy, jeśli to konieczne. –

0

można odczytać za pomocą datareader za pomocą czegoś podobnego do poniższej instrukcji.

TimeSpan time = dr.GetTimeSpan(dr.GetOrdinal(“Time7FieldName”)); 
Powiązane problemy