Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Преобразование varchar в date.  [new]
VitLF
Member

Откуда:
Сообщений: 339
Сервер Microsoft SQL Server 2008R2 Enterprise Edition.
Помогите преобразовать в таблице тип данных 'varchar' в 'date'?
В колонке 'varchar' данные типа '01.01.2008' надо преобразовать в 'date'.
20 дек 11, 14:44    [11796823]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
VitLF,

convert
20 дек 11, 14:45    [11796838]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Типа, что в вашем '01.01.2008' является месяцем, а что днем, надо угадать?

Сообщение было отредактировано: 20 дек 11, 14:46
20 дек 11, 14:46    [11796841]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
VitLF,

и что там означают 01. и 01.?
20 дек 11, 14:46    [11796843]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
ну как же , все ведь должны были угадать итальянский стиль даты
20 дек 11, 14:50    [11796894]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
VitLF
Member

Откуда:
Сообщений: 339
Гавриленко Сергей Алексеевич
Типа, что в вашем '01.01.2008' является месяцем, а что днем, надо угадать?



Опс, '2008.01.01'. Год, месяц, день.
20 дек 11, 14:52    [11796920]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
VitLF
Member

Откуда:
Сообщений: 339
Извините, поспешил.
Год, Месяц, День.
20 дек 11, 14:53    [11796936]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
VitLF
Гавриленко Сергей Алексеевич
Типа, что в вашем '01.01.2008' является месяцем, а что днем, надо угадать?



Опс, '2008.01.01'. Год, месяц, день.


ух ты, какой интересный у вас формат. предложу заменить точку на дефис и применить convert
20 дек 11, 14:54    [11796942]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
VitLF
Гавриленко Сергей Алексеевич
Типа, что в вашем '01.01.2008' является месяцем, а что днем, надо угадать?



Опс, '2008.01.01'. Год, месяц, день.
102-й стиль CONVERT()
20 дек 11, 14:54    [11796950]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
VitLF
Member

Откуда:
Сообщений: 339
И как это реализовать? Распишите поподробнее.
20 дек 11, 14:59    [11796996]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
select CONVERT(datetime, '2008.12.24', 102)
20 дек 11, 15:00    [11797010]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
VitLF
Member

Откуда:
Сообщений: 339
Konst_One,

А по всей колонке, как сделать?
20 дек 11, 15:03    [11797044]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
VitLF
Konst_One,

А по всей колонке, как сделать?


  select CONVERT(datetime, [Моё поле с датой в строке], 102) as [Дата в формате datetime] FROM  [Моя таблица, где лежат такие кривые даты]


20 дек 11, 15:05    [11797065]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
Konst_One
VitLF
Konst_One,

А по всей колонке, как сделать?


  select CONVERT(datetime, [Моё поле с датой в строке], 102) as [Дата в формате datetime] FROM  [Моя таблица, где лежат такие кривые даты]
Ему же, вроде, date нужен... Т.е.
CONVERT(date, [Моё поле с датой в строке], 102)
20 дек 11, 15:19    [11797236]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
VitLF
Member

Откуда:
Сообщений: 339
baracs
Konst_One
пропущено...


  select CONVERT(datetime, [Моё поле с датой в строке], 102) as [Дата в формате datetime] FROM  [Моя таблица, где лежат такие кривые даты]
Ему же, вроде, date нужен... Т.е.
CONVERT(date, [Моё поле с датой в строке], 102)


Спасибо. Но это понимаю только мне покажет в конвертированном виде. А мне надо в табличке тип сменить 'varchar' на 'date'.
20 дек 11, 15:41    [11797486]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
создайте табличку с нужной структурой и запросом перелейте туда данные из вашей
20 дек 11, 15:43    [11797507]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
1. добавьте поле с типом date
2. проведите апдейт
3. удалите старую солонку.
4. переименуйте нужную в старое имя.
20 дек 11, 15:45    [11797532]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
VitLF
Member

Откуда:
Сообщений: 339
gds
1. добавьте поле с типом date
2. проведите апдейт
3. удалите старую солонку.
4. переименуйте нужную в старое имя.


Ага, спасибо. Направление мысли понил.
Сейчас буду делать.
20 дек 11, 15:49    [11797583]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование varchar в date.  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
VitLF
Но это понимаю только мне покажет в конвертированном виде. А мне надо в табличке тип сменить 'varchar' на 'date'.
Если обязательно сохранять наименование этой колоки, переименовать колонку, которая varchar (sp_rename).
Добавить к таблице колонку с типом данных date и "старым" наименованием (ALTER TABLE), проапдейтить ее отконвертированными значениями из старой колонки (UPDATE).
Старую колонку удалить, если мешает (опять ALTER TABLE).

Можно протестить SELECT-ом, все ли значения корректно конвертятся в date и, если "да", просто поменять тип данных колонки в дизайнере таблиц SSMS. Тогда, все вышеописанное "студия" сделает за вас.
20 дек 11, 15:56    [11797661]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить