Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 про IsNumeric()  [new]
AlexanderVS
Guest
В BOL сказано, что если IsNumeric() вернул 1, значит можно быть уверенным что выражение можно преобразовать в один из числовых форматов. Но он возвращает 1 если в поле стоит просто символы + или -, а также если в качестве разделителя дробной части использована запятая вместо точки, а CONVERT в этом случае ругается.
Не подскажите почему так?
6 июн 01, 01:12    [7902]     Ответить | Цитировать Сообщить модератору
 RE:про IsNumeric()  [new]
Fompro
Member

Откуда:
Сообщений: 363
Не знаю, но на + и - не ругается. (SQL2000)
6 июн 01, 16:52    [7903]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: RE:про IsNumeric()  [new]
МистерШоу
Member

Откуда:
Сообщений: 21336
Fompro
Не знаю, но на + и - не ругается. (SQL2000)

Та же проблема, с (+,-). IsNumeric('-') =1, после чего спотыкается
CAST/CONVERT.
Server: Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to float.

Контекст:
Microsoft SQL Server 2000 - 8.00.760(SP3) (Intel X86)
Dec 17 2002 14:22:05
Copyright (c) 1988-2003 Microsoft Corporation
Standard Edition on Windows

Эта ошибка была исправлена каким-то SP/fix? Кто-нибудь может
просветить любезно? Ситуацию пока обошли, но осадок остался.
29 ноя 04, 12:02    [1143198]     Ответить | Цитировать Сообщить модератору
 Re: про IsNumeric()  [new]
Диченка
Member

Откуда: ИТ-Олимп, 58.1-летний супермен
Сообщений: 3989
Г-н Шоу, у меня наблюдается та же самая ситуация. Более того, ISNUMERIC('.')
и ISNUMERIC(',') возвращает также единицу. Обойти эту ситуацию можно присобачив допустим нолик после знака.
29 ноя 04, 12:08    [1143234]     Ответить | Цитировать Сообщить модератору
 Re: про IsNumeric()  [new]
МистерШоу
Member

Откуда:
Сообщений: 21336
Кузен, ситуацию обошли! Хотелось, чтобы ее не возникло вообще.
Похоже, гэн Fompro - выдумщик.

=================================
Стабильнасть - призрак мостерз два
Картинка с другого сайта.
29 ноя 04, 12:12    [1143255]     Ответить | Цитировать Сообщить модератору
 Re: про IsNumeric()  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
BOL:
Remarks
ISNUMERIC returns 1 when the input expression evaluates to a valid integer, floating point number, money or decimal type; otherwise it returns 0. A return value of 1 guarantees that expression can be converted to one of these numeric types.
select convert(money,'+'),convert(money,'-'),convert(money,','),convert(money,'.')
29 ноя 04, 12:25    [1143309]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить