Функции приведения типов

Приведение типов включает три основных действия: преобразование, переинтерпретацию и повышение.

  • Преобразование. Это процесс изменения типа данных значения на другой тип данных. Он требует дополнительных вычислений и выполняется исключительно функцией TO_STRING().
  • Переинтерпретация. Это процесс обработки бинарных данных, представляющих значение, так, как если бы они имели другой тип данных, без фактического изменения исходных данных. Обрабатывается функцией SINT(), не требует дополнительных вычислений; просто переинтерпретирует существующие данные.
  • Повышение. Это процесс преобразования значения в «больший» или более точный тип данных. Оно также не требует дополнительных вычислений; просто запрашивает у аргумента возврат значения другого типа. Только JSON-поля и несколько других функций могут повышать свои значения до целых чисел. Если аргумент не может выдать значение другого типа, повышение завершится неудачей. Например, функция TIMEDIFF() обычно возвращает строку, но может также вернуть число. Поэтому BIGINT(TIMEDIFF(1,2)) выполнится успешно, заставляя TIMEDIFF() вернуть целочисленное значение. Напротив, DATE_FORMAT() возвращает только строки и не может выдать число, следовательно, BIGINT(DATE_FORMAT(...)) завершится ошибкой.

BIGINT()

Эта функция повышает целочисленный аргумент до 64-битного типа, оставляя аргументы с плавающей точкой без изменений. Она предназначена для обеспечения вычисления определённых выражений (таких как a*b) в 64-битном режиме, даже если все аргументы 32-битные.

DOUBLE()

Функция DOUBLE() повышает свой аргумент до типа с плавающей точкой. Она служит для принудительного вычисления числовых JSON-полей.

INTEGER()

Функция INTEGER() повышает свой аргумент до 64-битного знакового типа. Она предназначена для принудительного вычисления числовых JSON-полей.

TO_STRING()

Эта функция принудительно преобразует свой аргумент к строковому типу.

UINT()

Функция UINT() повышает свой аргумент до 32-битного беззнакового целого типа.

UINT64()

Функция UINT64() повышает свой аргумент до 64-битного беззнакового целого типа.

SINT()

Функция SINT() принудительно переинтерпретирует свой 32-битный беззнаковый целочисленный аргумент как знаковый и расширяет его до 64-битного типа (поскольку 32-битный тип беззнаковый). Например, выражение 1-2 обычно вычисляется как 4294967295, но SINT(1-2) вычисляется как -1.

Last modified: August 28, 2025