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

Откуда:
Сообщений: 251
update рабочая set [Год отгрузки]= case
when cast ([Отч мес] as int)<cast(Right(рабочая.[Дата отгрузки],2)AS int) then cast([Отч год] as int)
else cast([Отч год] as int)-1
end;
ms sql server выдает ошибку:
Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения nvarchar "АЙНИ" в тип данных int.

Поле Отч мес, Дата отгрузки, Отч год имеют текстовый формат.
Поле Дата отгрузки имеет вид 0102 к примеру(первые 2 цифры-число,вторые две цифры-номер месяца)
Данные приходят в таком формате, а мне для вычияления других полей их нужно обрабатывать.
подскажите в чем ошибка, пожалуйста.
5 мар 12, 17:08    [12198119]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
isnumeric()
, как минимум
5 мар 12, 17:11    [12198159]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ola_ya_22
подскажите в чем ошибка, пожалуйста.
В том, что вы пытаетесь преобразовать значение "АЙНИ" в тип инт. Сервер вам об этом честно сообщает.
5 мар 12, 17:12    [12198164]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
ola_ya_22
Member

Откуда:
Сообщений: 251
update рабочая set [Год отгрузки]= case
when cast ('[Отч мес]' as int)<cast('Right(рабочая.[Дата отгрузки],2)'AS int) then cast('[Отч год]' as int)
else cast('[Отч год]' as int)-1
end;
попробовала так...говорит, что Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения varchar "[Отч мес]" в тип данных int.

Как устранить ошибку?
подскажите пожалуйста
5 мар 12, 17:17    [12198233]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
проверяйте содержимое своей базы, а именно таблицу [рабочая] и её столбцы [Отч мес], [Дата отгрузки], [Отч год] на неправильные данные (там у вас числовые значения должны быть,а в поле [Дата отгрузки] - 2 первых символа)
5 мар 12, 17:22    [12198283]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Konst_One
а в поле [Дата отгрузки] - 2 первых символа


Не путайте девушку, коллега, у нее же Right, а не Left. ;) Поэтому в указанной колонке два последних символа должны представлять собой число. Хотя, очевидно, для начала бы ей с [Отч мес] разобраться бы...
5 мар 12, 17:43    [12198457]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
ola_ya_22
update рабочая set [Год отгрузки]= case
when cast ('[Отч мес]' as int)<cast('Right(рабочая.[Дата отгрузки],2)'AS int) then cast('[Отч год]' as int)
else cast('[Отч год]' as int)-1
end;
попробовала так...говорит, что Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения varchar "[Отч мес]" в тип данных int.

Как устранить ошибку?
подскажите пожалуйста


а зачем вы [Отч год] ещё и в кавычки заключили?
5 мар 12, 17:52    [12198547]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
SamMan
Konst_One
а в поле [Дата отгрузки] - 2 первых символа


Не путайте девушку, коллега, у нее же Right, а не Left. ;) Поэтому в указанной колонке два последних символа должны представлять собой число. Хотя, очевидно, для начала бы ей с [Отч мес] разобраться бы...


да, последние 2 символа, спс, что уточнили. не внимателен.
5 мар 12, 17:55    [12198571]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
ola_ya_22
Member

Откуда:
Сообщений: 251
Shakill,
насколько я поняла cast нужно строку передавать, если кавычки не ставить, то вылазиет ошибка

Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения nvarchar "АЙНИ" в тип данных int.
5 мар 12, 17:59    [12198611]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
ola_ya_22
Member

Откуда:
Сообщений: 251
Konst_One, данные в этих столбцах числовые, но объявлены как текст
5 мар 12, 18:00    [12198618]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ola_ya_22
Konst_One, данные в этих столбцах числовые, но объявлены как текст
Да что вы говорите. С каких пор "АЙНИ" - это число?

И потом, раз они числовые, то зачем они объявлены как текст?

Сообщение было отредактировано: 5 мар 12, 18:02
5 мар 12, 18:02    [12198630]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
ola_ya_22
Ошибка преобразования значения nvarchar "АЙНИ" в тип данных int.


тем не менее ошибка есть. значит вы не проверили все данные.
5 мар 12, 18:02    [12198634]     Ответить | Цитировать Сообщить модератору
 Re: ошибка преобразования(((((помогите пожалуйста  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
ola_ya_22
Shakill,
насколько я поняла cast нужно строку передавать, если кавычки не ставить, то вылазиет ошибка

Сообщение 245, уровень 16, состояние 1, строка 1
Ошибка преобразования значения nvarchar "АЙНИ" в тип данных int.


неправильно поняли
нужно на вход cast давать те данные, которые он может преобразовать
а в вашем случае в таблице есть запись с содержимым 'айни' в одном из полей
эту запись в int преобразовать не получится
о чём сервер и сообщает
проверяйте данные
5 мар 12, 18:02    [12198635]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить