Как заказать по дате, когда мой столбец типа String в Sql Server 2017 и C #? - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь упорядочить по дате в своей базе данных, но не могу, потому что это дает мне ошибку.Я использую SQL Server 2017.

Я уже читал другие статьи об этом, но при попытке все равно выдает ту же ошибку.

Имя моей таблицы "Ferramentas" и имя моего столбцаэто "DataCriacao".Я пробовал это:

 Select * From Ferramentas order By CONVERT(date, Data_Criação,101) Desc

Также я пробовал:

 Select * From Ferramentas Order By Cast(Data_Criação As Date) Desc

Ошибка:

Преобразование не удалось при преобразовании даты и / или времени из символастрока

В моей базе данных "Data_Criacao" указан тип nchar (20) .

Моя дата похожа на "05 декабря 2018"

Мне нужно это для моего сервера SQL и кода C #, потому что я делаю приложение, и некоторые данные не в правильном форматировании, и я не могу изменить, я просто могу адаптировать свой код для этого.

Не могли бы вы мне помочь, пожалуйста?

1 Ответ

0 голосов
/ 05 декабря 2018

Неясно, хотите ли вы 103 или 101 для формата.Давайте предположим, что ваша дата мм / дд / гггг.

Лучше всего предположить, что не все даты имеют этот формат.Итак, используйте try_convert():

order By try_convert(date, Data_Criação, 101) desc

Чтобы найти ошибочные значения, напишите запрос, например:

select Data_Criação
from Ferramentas
where try_convert(date, Data_Criação, 101) is null;

Попутно подумайте, как исправить вашу модель данных, чтобызначения хранятся с использованием правильных типов.

...