2009-07-25 4 views

Antwort

17

Präzision und Reichweite (so, alles wichtige ;-P)

Von MSDN:

.NET System.DateTime

Der Typ Datetime-Wert repräsentiert Daten und Zeiten mit Werten von 12:00 gefächert: 00 Uhr Mitternacht, 1. Januar 0001 Anno Domini (Common Era) bis 23:59:59 PM, 31. Dezember 9999 AD (CE)

Zeitwerte werden in 100-Nanosekunden-Einheiten genannt Zecken und ein bestimmtes Datum ist die Anzahl der Ticks seit 00.00 Mitternacht, 1. Januar 0001 AD (CE) im GregorianCalendar calenda

Transact SQL datetime

Zeitraum: 1. Januar 1753 bis zum 31. Dezember 9999

Genauigkeit: Abgerundete zu Schritten von 0,000, 0,003 oder 0,007 Sekunden

+0

ausgezeichnet! Ich möchte eine Funktion in C# schreiben, die einen Parameter vom Typ string bekommt und ihn in datetime umwandelt. Ich möchte den Rückgabewert der Funktion in DB speichern. Die Funktion sollte sich um eine leere Zeichenfolge kümmern und in diesem Fall sollte sie null zurückgeben. Aber null kann nicht eingefügt werden. Was ist los mit dir? – odiseh

+0

Wahrscheinlich einfach, dass Sie DBNull.Value in .NET-Code verwenden müssen, um Datenbank null darzustellen. –

+1

Es gibt auch den Zeitzonenaspekt - obwohl DateTime keine zugeordnete Zeitzone hat, kann * * wissen, ob es "lokal" oder UTC ist. –

11

Sie können auch datetime2 von SQL Server 2008. Die Pre verwenden cision gibt es auch 100ns. Tatsächlich wurde es eingeführt, um der .NET DateTime-Genauigkeit zu entsprechen.

datetime2 (Transact-SQL)

+0

Hinweis: Das ist mit der Standard-Datetime2-Genauigkeit (es kann auf die zweite Genauigkeit verringert werden). – user2864740

6

Ja.

C# Äquivalent des Typs SQL DATETIME ist SqlDateTime

So definieren die SQL-Aufruf (gespeicherte Procs mit Parametersammlung natürlich) SqlDateTime zu verwenden. Ein Vorteil besteht darin, dass Sie einen Überlauf oder einen Bereichsüberschreitungsfehler abfangen können, indem Sie den Befehl statt zur Ausführungszeit vom Datenbankmodul erstellen.

Verwandte Themen