SQL-сервер DateTime и C # DateTime
На моем сервере SQL у меня есть очень простая таблица для тестирования, которая содержит только три строки:
ID
, Date
а такжеHours
.(varchar
, DateTime
, varchar
).
Формат DateTime в SQL выглядит так:yyyy-MM-dd HH:mm:ss.fff
.
Формат DateTime в C # выглядит так:yyyy-dd-MM HH:mm:ss.fff
.
Я использую следующий код для получения формата C # DateTime:
string ddd = "2012-10-10 00:00:00.000";
dt1 = DateTime.ParseExact(ddd, "yyyy-MM-dd HH:mm:ss.fff", null);
Если я попытаюсь сделать это вyyyy-dd-MM
Я получаю ошибку:
The DateTime, which is represented by the string, isn't supported by the calender.
В моем приложении C # я пытаюсь найти общее количество часов между датами Sunder. Я вроде получил его на работу, но он работает только для дат между 01 и 12.
Так как из2012-01-10
в2012-10-10
(десять дней) даст мне правильное количество часов из базы данных.
Но когда я пишу2012-01-10
в2012-14-10
(четырнадцать дней) я получаю сообщение об ошибке:
The conversion of a char data type to a datetime data type resulted in an out-of-range"
Заранее спасибо.
PS. Можете ли вы предложить более простой способ получить даты?
MySQL запрос
string CommandText = "SELECT * FROM date_test WHERE id = '4' AND date BETWEEN '" + dt1 + "' AND '" + dt2 + "'";
Я понял проблему, но не решение.
Проблема в том, что база данных SQL смотрит на формат и хочет yyyy-MM-dd, но C # может отправлять только yyyy-dd-MM.
Почему не можешьParseExact()
делать гггг-мм-дд?