У меня есть таблица, которая имеет столбец CreatedDate
, который имеет тип varchar(100)
. Строки для этого столбцов:Как преобразовать varchar на дату для заказа в SQL Server
CreatedDate
--------------
March 6, 2015
March 6, 2015
March 6, 2015
March 6, 2015
March 6, 2015
March 6, 2015
March 7, 2015
March 10, 2015
Если я следующий запрос, дата не приказывать правильно:
SELECT *
FROM [Db].[dbo].[Table1]
ORDER BY [CD] ASC
я вижу следующее:
CreatedDate
---------------
March 10, 2015
March 6, 2015
March 6, 2015
March 6, 2015
March 6, 2015
March 6, 2015
March 6, 2015
March 7, 2015
Как Я передал столбец так, чтобы оператор упорядочения работал правильно?
Строки упорядочены ** абсолютно правильно * * - для 'varchar'. Это то, что вы получаете от использования ** неправильного типа данных ** - если у вас есть дата - храните его как 'DATE' или' DATETIME2 (n) '!! См. Также: [Плохие привычки пинать: выбор неправильного типа данных] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong- data-type.aspx) - вы всегда должны использовать наиболее подходящий тип данных - вот для чего они нужны, в конце концов! –
Это должен быть формат varchar для использования где-то в другом месте. Спасибо за критику :) – SearchForKnowledge
Вы можете * всегда * легко конвертировать что-либо в строку - нет смысла хранить числа или даты как ** string ** ... –