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?

questionAnswers(2)

yourAnswerToTheQuestion