Поделиться через


Неявное преобразование типов данных в выражениях

Неявное преобразование типа данных происходит, когда средство оценки выражений автоматически преобразует данные из одного типа в другой. Например, если smallint сравнивается с int, то перед сравнением smallint неявно преобразуется в int.

Средство оценки выражений не может произвести неявное преобразование данных, если аргументы и операнды имеют несовместимые типы данных. Кроме того, средство оценки выражений не может неявно преобразовывать любое значение в логическое. Вместо этого аргументы и операнды должны быть явно преобразованы с помощью оператора приведения. Дополнительные сведения см. в разделе Приведение (службы SSIS).

На следующей диаграмме показан тип результата неявного преобразования операций BINARY. Пересечение столбцов и строк в этой таблице является типом результата побитовой операции с операндами левого (From) и правого (To) типов.

Неявное преобразование между типами данных

Пересечением целых чисел со знаком и без знака является целое число со знаком, которое потенциально больше любого из этих двух аргументов.

Операторы позволяют сравнивать строки, даты, логические значения и другие типы данных. Прежде чем оператор сравнит два значения, средство оценки выражений производит определенные неявные преобразования. Дополнительные сведения см. в разделах

Функция, которая использует один аргумент, возвращает результат того же типа данных, что и аргумент, со следующими исключениями.

  • Функции DAY, MONTH и YEAR принимают дату и возвращают целочисленный результат (DT_I4).

  • Функция ISNULL принимает выражения любого типа данных SSIS и возвращает результат логического типа данных (DT_BOOL).

  • Функции SQUARE и SQRT принимают числовые выражения и возвращают нецелочисленный результат (DT_R8).

Если тип данных обоих аргументов совпадает, тип данных результата будет таким же. Единственное исключение заключается в том, что побитовая операция над двумя значениями типа данных DT_DECIMAL возвращает результат типа данных DT_NUMERIC.