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?