2016-09-07 3 views
0

У нас есть устаревшая система, написанная на .NET, которая вставляет простое DateTime в SQL Server (в виде строкового поля). Что-то, как показано ниже:Преобразование даты SQL Server из .NET DateTime.Now.ToString

cmd.Parameters.Add(new SqlParameter("@dateSent", DateTime.Now.ToString())); 

Это приводит в строку, как показано ниже в базе данных SQL Server:

9/6/2016 3:00:15 AM 

Я просто пытаюсь запустить несколько запросов в SQL Server и конвертировать этот формат даты , Например, сортировка по-умолчанию:

order by CONVERT(DATE, DateSent) 

Получите правильную дату, но формат времени не сортируется должным образом. Я пробовал несколько форматов SQL Server example link here, но они, похоже, не работают.

Возможно, мне что-то не хватает? Я бы предположил, что по умолчанию .NET DateTime будет очень легко конвертироваться в SQL Server.

+0

Как вы можете добавить параметр в 'ORDER BY'? – techspider

+0

Если это не правильно сортировка, возможно, вам просто нужно установить правильный стиль даты. – OctoCode

+0

Передайте дату вместо строки, и многие проблемы исчезнут. – Plutonix

ответ

0

Ничего себе. Я как-то пропустил это в течение последнего часа взгляда. Это было очевидно, но здесь это на случай, если кто-то другой наткнется на это.

Я не знаю типы данных SQL Server хорошо (очевидно). Использование DateTime с этой стороны устранило эту проблему.

order by CONVERT(DATETIME, DateSent) 
Смежные вопросы