mtufail Ответов: 2

Дата выпуска в SQL server с использованием ASP.NET MVC C#


я сталкиваюсь с проблемой даты, чтобы получить значение из sql server с помощью asp.net mvc c#
он отлично работает на дату 12 и после 12 он показывает ошибку
формат даты sql server-2020-03-27

Что я уже пробовал:

этот код отлично работает на дату 12 и показывает ошибку после 12, я думаю, что проблема в формате даты
DateTime fromDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);

Maciej Los

Замените "ДД/ММ/гггг" на "гггг-ММ-ДД" и дайте мне знать, если это поможет.
[РЕДАКТИРОВАТЬ]
Можете ли вы показать метод, который вы используете для получения данных из SQL Server?

2 Ответов

Рейтинг:
2

phil.o

Если вы используете тип данных datetime в SQL, он не имеет понятия о формате. Он просто хранит информацию datetime в виде числового значения, формат становится релевантным только при представлении данных конечному пользователю; таким образом, в ASP.NET сбоку.

Если вы храните значения datetime в виде строки, то вы не используете правильный тип данных и рано или поздно столкнетесь с рядом трудностей. Вам следует изменить это как можно скорее или быть готовым к плохим результатам ваших запросов по фильтрации/группировке полей даты. Если вы все еще не хотите использовать правильный тип данных, то вам придется сопоставить формат в базе данных с форматом самого файла. ParseExact метод. В этом случае попробуйте

DateTime fromDate = DateTime.ParseExact(date, "yyyy/MM/dd", CultureInfo.InvariantCulture);
вместо.


mtufail

В SQL server я использую тип данных date.
Когда я использую формиат "гггг/ММ/ДД", он показывает ошибку как до, так и после 12-й даты
когда я использую формиат "ДД/ММ/гггг", он показывает ошибку после даты 12 и отлично работает на или до даты 12

phil.o

Затем используйте формат "MM/dd/yyyy" для ParseExact.

Richard Deeming

Если вы используете date тип данных в SQL, то вам не нужно использовать Parse или ParseExact вообще. Вы можете просто привести возвращаемое значение непосредственно к a DateTime.

mtufail

когда я использую "ММ/ДД/гггг", он работает на 12 или раньше, но не показывает данные и выдает ошибку после 12 даты.
Когда я использую "ДД/ММ/гггг", он отлично работает на 12-й дате или до нее, а также показывает данные, но выдает ошибку после 12-й даты.

mtufail

"dd/MM/yyyy" отлично работает на локальном сервере, а также отлично работает, когда я использую ip-адрес sql server, имя пользователя и пароль непосредственно с моим приложением. он показывает ошибку в прямом эфире после даты 12

phil.o

Пожалуйста, покажите сообщение об ошибке, а также строку кода, вызывающую его.

Рейтинг:
2

Vijay Ahlawat

В коде нет никаких проблем.
Проблема заключается в том, что локальная машина и сервер имеют разный формат даты и времени.
Пожалуйста, измените формат datetime для вашего сервера в качестве локальной машины, тогда код будет работать нормально.
Проблема в том, что сервер рассматривает ваш день как месяц, и это происходит из-за другого формата даты и времени.