Serwer SQL DateTime i C # DateTime
Na moim serwerze SQL mam bardzo prostą tabelę do testowania, która zawiera tylko trzy wiersze:ID
, Date
iHours
. (varchar
, DateTime
, varchar
).
Format DateTime w SQL wygląda następująco:yyyy-MM-dd HH:mm:ss.fff
.
Format DateTime w C # jest jak:yyyy-dd-MM HH:mm:ss.fff
.
Do uzyskania formatu C # DateTime używam następującego kodu:
string ddd = "2012-10-10 00:00:00.000";
dt1 = DateTime.ParseExact(ddd, "yyyy-MM-dd HH:mm:ss.fff", null);
Jeśli spróbuję to zrobićyyyy-dd-MM
Dostaję błąd:
DateTime, który jest reprezentowany przez ciąg, nie jest obsługiwany przez kalendarz.
W mojej aplikacji C # próbuję znaleźć całkowitą liczbę godzin między datami nadawcy. Zrobiłem to, aby działało, ale działa tylko dla dat od 01 do 12.
Więc jak z2012-01-10
do2012-10-10
(dziesięć dni) da mi prawidłową ilość godzin z bazy danych.
Ale kiedy piszę2012-01-10
do2012-14-10
(czternaście dni) Dostaję błąd:
Konwersja typu danych char na typ danych datetime spowodowała przekroczenie zakresu ”
Z góry dziękuję.
PS. Czy możesz zaproponować łatwiejszy sposób na uzyskanie dat?
zapytanie mySQL
string CommandText = "SELECT * FROM date_test WHERE id = '4' AND date BETWEEN '" + dt1 + "' AND '" + dt2 + "'";
Znalazłem problem, ale nie rozwiązanie.
Problem polega na tym, że baza danych SQL wygląda w formacie i chce yyyy-MM-dd, ale C # może wysyłać tylko rrrr-dd-MM.
Dlaczego nieParseExact()
czy yyyy-MM-dd?