powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка на допустимость приведения типов
11 сообщений из 36, страница 2 из 2
Проверка на допустимость приведения типов
    #38675154
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShakillВладислав КолосовА что не так с ISNUMERIC()? Эта функция как раз проверяет возможность конвертирования строки в числовой формат.только вы не знаете в какой. для строки '-$' вернет 1, т.к. можно конвертировать в (small)money и только, а для '3e8' - потому что можно в float, но не money или int.
Это факт.
Но почему бы автору не пойти наиболее прямым путём, используя
автор в C# есть конструкция is
Т.е. он сам же и ответил на свой вопрос этой фразой.
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675169
msLexслучайно заглянул
Код: sql
1.
2.
3.
4.
declare
  @f varchar(10) = '100'
declare  
  @f_int int = nullif(isnumeric(@f), 0)



что за бред вы написали? где здесь конвертация сроки '100' к числу 100?


случайно заглянулА вы прочитали что вам написали чуть повыше про isnumeric()?
а вы почитали
1. кому написали про isnumeric?
2. кому я написал по isnumeric?

Признаю вашу правоту по обоим вопросам :)
написал бред, вернее увлекся и забыл уже про конечную цель - конвертацию, ограничившись только проверкой :)

а про isnumeric() я конечно спутал вас с ТС, у обоих логин начинается с буквы 'm' :)
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675171
Кот МатроскинВладислав КолосовА что не так с ISNUMERIC()? Эта функция как раз проверяет возможность конвертирования строки в числовой формат.
"Число ли это?" и "Можно ли это сконвертировать в INT?" - это совершенно разные вопросы ;)
Как минимум, IsNumeric не поймает переполнение (не говоря уже про упоминавшиеся выше записи с плавающей точкой и т.п.)

Про переполнение поймет:
Код: sql
1.
select isnumeric('1.8e308')
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675174
так нагляднее:
Код: sql
1.
select isnumeric('1.79e308'), isnumeric('1.8e308')
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675177
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
случайно заглянулКот Матроскинпропущено...

"Число ли это?" и "Можно ли это сконвертировать в INT?" - это совершенно разные вопросы ;)
Как минимум, IsNumeric не поймает переполнение (не говоря уже про упоминавшиеся выше записи с плавающей точкой и т.п.)

Про переполнение поймет:
Код: sql
1.
select isnumeric('1.8e308')


про переполнение INT?
Код: sql
1.
2.
3.
select isnumeric('1000000000000')

select cast('1000000000000' as int)
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675191
Кот Матроскинслучайно заглянулпропущено...


Про переполнение поймет:
Код: sql
1.
select isnumeric('1.8e308')


про переполнение INT?
Код: sql
1.
2.
3.
select isnumeric('1000000000000')

select cast('1000000000000' as int)



А при чем тут int? Мы говорим не про int, а про isnumeric().
16194003
если ТС воспользуется советом и возьмет isnumeric(), то ему придется учесть область применимости и все ограничения этой функции
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675197
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
случайно заглянулесли ТС воспользуется советом и возьмет isnumeric(), то ему придется учесть А просто сходить по приведённым ссылкам, где всё давно вымучено/учтено не проще?
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675200
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
случайно заглянулМы говорим не про int, а про isnumeric()
Кто "мы"? ТС говорит про конвертацию в INT, я говорю про конвертацию в INT.
Вопрос про isnumeric возник в приложении "Нельзя ли проверить строку isNumeric перед конвертацией в INT?".
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675203
iapслучайно заглянулесли ТС воспользуется советом и возьмет isnumeric(), то ему придется учесть А просто сходить по приведённым ссылкам, где всё давно вымучено/учтено не проще?
Да уже и забылся начальный вопрос, тем более и ТС исчез
все переключились на обсуждение isnumeric()
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675208
Кот Матроскинслучайно заглянулМы говорим не про int, а про isnumeric()
Кто "мы"? ТС говорит про конвертацию в INT, я говорю про конвертацию в INT.
Вопрос про isnumeric возник в приложении "Нельзя ли проверить строку isNumeric перед конвертацией в INT?".
ТС вообще говорил про конвертацию к тому или иному типу.
...
Рейтинг: 0 / 0
Проверка на допустимость приведения типов
    #38675230
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
случайно заглянулКот Матроскинпропущено...

Кто "мы"? ТС говорит про конвертацию в INT, я говорю про конвертацию в INT.
Вопрос про isnumeric возник в приложении "Нельзя ли проверить строку isNumeric перед конвертацией в INT?".
ТС вообще говорил про конвертацию к тому или иному типу. ошибка при конвертации
с учётом
Аналог TRY_CAST в 2008?
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка на допустимость приведения типов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]