SQL Server DateTime und C # DateTime

Auf meinem SQL Server habe ich eine sehr einfache Tabelle zum Testen, die nur drei Zeilen enthält:ID, Date undHours. (varchar, DateTime, varchar).

Das DateTime-Format in SQL sieht folgendermaßen aus:yyyy-MM-dd HH:mm:ss.fff.

Das DateTime-Format in C # sieht folgendermaßen aus:yyyy-dd-MM HH:mm:ss.fff.

Ich verwende den folgenden Code, um das C # DateTime-Format abzurufen:

 string ddd = "2012-10-10 00:00:00.000";
 dt1 = DateTime.ParseExact(ddd, "yyyy-MM-dd HH:mm:ss.fff", null);

Wenn ich es schaffen willyyyy-dd-MM Ich erhalte einen Fehler:

Das DateTime, das durch die Zeichenfolge dargestellt wird, wird vom Kalender nicht unterstützt.

In meiner C # -Anwendung versuche ich, die Gesamtstundenzahl zwischen zwei Datumsangaben zu ermitteln. Ich habe es irgendwie zum Laufen gebracht, aber es funktioniert nur für Daten zwischen 01 und 12.

Also gerne ab2012-01-10 zu2012-10-10 (10 Tage) gibt mir die korrekte Anzahl der Gesamtstunden aus der Datenbank.

Aber wenn ich schreibe2012-01-10 zu2012-14-10 (14 Tage) Ich erhalte eine Fehlermeldung:

Die Konvertierung eines char-Datentyps in einen datetime-Datentyp führte zu einer Überschreitung des Bereichs.

Danke im Voraus.

PS. Können Sie einen einfacheren Weg vorschlagen, um Termine zu bekommen?

MySQL-Abfrage

string CommandText = "SELECT * FROM date_test WHERE id = '4' AND date BETWEEN '" + dt1 + "' AND '" + dt2 + "'";

Ich habe das Problem herausgefunden, aber nicht die Lösung.

Das Problem ist, dass die SQL-Datenbank das Format überprüft und JJJJ-MM-TT wünscht, C # jedoch nur JJJJ-TT-MM senden kann.

Warum kann nichtParseExact() JJJJ-MM-TT?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage