У меня есть таблица с именем SF_Data и столбец с именем IN_Date, идентификатор данных выглядит так:

ID      IN_Date
1       9/8/2010
2       26/04/2011
3       20/09/2010

Тип данных IN_Date - varchar (50).

Я пытаюсь преобразовать IN_Date в формат мм / дд / гггг. Я пробовал это сделать:

Select convert(varchar,IN_Date,103) From dbo.SF_Data

Но все равно формат не меняется. Может ли кто-нибудь сказать мне, где я ошибаюсь

4
Peter 30 Авг 2011 в 22:56

2 ответа

Лучший ответ

Вам нужно преобразовать, чтобы исправить данные (до правильного типа данных) перед форматированием ...

Select
     convert(varchar,
         convert(date, IN_Date, 103),
     101)
from dbo.SF_Data
8
Joel Coehoorn 30 Авг 2011 в 19:05

Третий параметр convert не имеет значения при преобразовании из varchar в varchar. Итак, согласно комментарию @marc_s, вам нужно будет преобразовать varchar в datetime, используя формат 103, а затем из datetime в varchar, указав формат 101:

Select convert(varchar(12),convert(datetime,IN_Date,103),101) From dbo.SF_Data

Например:

select convert(varchar(12),convert(datetime,'31/12/2001',103),101)

Печатает 12/31/2001.

См. MSDN.

1
Andomar 30 Авг 2011 в 19:12