Справка по запросу SQL Server ... необходимо преобразовать varchar в дату - PullRequest
0 голосов
/ 08 октября 2010

Я пишу запрос для получения результатов для всех значений в столбце типа varchar, который меньше '29/08/2010' (дата)

Мой запрос:

SELECT * FROM EMPLOYEES WHERE COLUMN1 < '29/08/2010'

Здесь column1 имеет тип varchar.Я использую SQL Server 2005

Есть ли способ сделать это возможным .. ??

Пожалуйста, помогите мне.

Заранее спасибо

Ответы [ 4 ]

2 голосов
/ 08 октября 2010

можно попробовать

SELECT * FROM EMPLOYEES WHERE convert(datetime,COLUMN1,110) <  convert(datetime, '29/08/2010',110)
1 голос
/ 08 октября 2010

Вы пробовали

SELECT * FROM EMPLOYEES WHERE CONVERT(datetime, COLUMN1, 103) > CONVERT(datetime, '29/08/2010', 103)
1 голос
/ 08 октября 2010
0 голосов
/ 08 октября 2010

Если вы строго храните данные в COLUMN1, то почему вы определили тип данных как varchar?

С точки зрения производительности, это снизит производительность, потому что преобразование Varchar в DateTime или любой другой сделает ваши индексы неэффективными, если таковые имеются. Обычно использование таких функций, как RIGHT () или CONVERT, LIKE '%%' или Like 'a%', делает предложение WHERE несогласованным, что приводит к операции сканирования индекса для получения данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...