Примитивные типы данных
Примечание
Термины «простые» и «примитивные» типы данных используются как синонимы.
Числовые
Тип | Пояснение | Используется в запросах и вычислениях YQL |
Используется в качестве типа данных столбца |
Используется в первичных ключах |
Поддерживает возможность сравнения |
---|---|---|---|---|---|
Bool | Булевое значение | Да | Да | Да | Да |
Int8 | Целое число со знаком (от –27 до 27–1) | Да | Нет | Нет | Да |
Int16 | Целое число со знаком (от –215 до 215–1) | Да | Нет | Нет | Да |
Int32 | Целое число со знаком (от –231 до 231–1) | Да | Да | Да | Да |
Int64 | Целое число со знаком (от –263 до 263–1) | Да | Да | Да | Да |
Uint8 | Беззнаковое целое число (от 0 до 28–1) | Да | Да | Да | Да |
Uint16 | Беззнаковое целое число (от 0 до 216–1) | Да | Нет | Нет | Да |
Uint32 | Беззнаковое целое число (от 0 до 232–1) | Да | Да | Да | Да |
Uint64 | Беззнаковое целое число (от 0 до 264–1) | Да | Да | Да | Да |
Float | Число с плавающей точкой | Да | Да | Нет | Да |
Decimal | Число фиксированной точности, поддерживается Decimal(22,9) — 13 знаков в целой части, 9 в дробной | Да | Да | Нет | Да |
Double | Число двойной точности | Да | Да | Нет | Да |
Строковые
Тип | Пояснение | Используется в запросах и вычислениях YQL |
Используется в качестве типа данных столбца |
Используется в первичных ключах |
Поддерживает возможность сравнения |
---|---|---|---|---|---|
String | Может содержать произвольные бинарные данные | Да | Да | Да | Да |
Utf8 | Содержит текст в кодировке UTF-8 | Да | Да | Да | Да |
Json | Содержит JSON | Да | Да | Нет | Нет |
Yson | Содержит YSON | Да | Да | Нет | Нет |
Uuid | Содержит UUID | Да | Нет | Нет | Да |
Максимальный размер значения в ячейке с любым строковым типом данных — около 4 МБ.
Дата и время
Тип | Пояснение | Используется в запросах и вычислениях YQL |
Используется в качестве типа данных столбца |
Используется в первичных ключах |
Поддерживает возможность сравнения |
---|---|---|---|---|---|
Date | Точность до дней | Да | Да | Да | Да |
Datetime | Точность до секунд | Да | Да | Да | Да |
Timestamp | Точность до микросекунд | Да | Да | Да | Да |
Interval | Точность до микросекунд, допустимы значения интервалов — не более 24 часов | Да | Да | Нет | Да |
Приведение примитивных типов данных
Явное приведение
Явное приведение при помощи CAST:
Bool | Int | Uint | Float | Double | Decimal | String | Utf8 | Json | Yson | Uuid | Date | Datetime | Timestamp | Interval | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bool | Да1 | Да1 | Да1 | Да1 | Нет | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
Int | Да2 | Да | Да3 | Да | Да | Да | Нет | Нет | Нет | Нет | Да | Да | Да | Да | |
Uint | Да2 | Да | Да | Да | Да | Да | Нет | Нет | Нет | Нет | Да | Да | Да | Да | |
Float | Да2 | Да | Да | Да | Нет | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
Double | Да2 | Да | Да | Да | Нет | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
Decimal | Нет | Да | Да | Да | Да | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
String | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | |
Utf8 | Да | Да | Да | Да | Да | Да | Да | Нет | Нет | Нет | Да | Да | Да | Да | |
Json | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Нет | Нет | Нет | Нет | Нет | Нет | |
Uuid | Нет | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
Date | Нет | Да | Да | Да | Да | Нет | Да | Нет | Нет | Нет | Нет | Да | Да | Нет | |
Datetime | Нет | Да | Да | Да | Да | Нет | Да | Нет | Нет | Нет | Нет | Да | Да | Нет | |
Timestamp | Нет | Да | Да | Да | Да | Нет | Да | Нет | Нет | Нет | Нет | Да | Да | Нет | |
Interval | Нет | Да | Да | Да | Да | Нет | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Примечания к таблице:
True
=> 1,False
=> 0.- Всегда
True
. Исключение: 0 =>False
. - Возможно только в случае неотрицательного значения.
Неявное приведение
Неявное приведение типов, которое возникает в базовых операциях (+-*/) между разными типами данных. В ячейках таблицы указан тип результата операции, если она возможна:
Bool | Int | Uint | Float | Double | Decimal | String | Utf8 | Json | Yson | Uuid | Date | Datetime | Timestamp | Interval | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bool | |||||||||||||||
Int | Int | Int | Float | Double | |||||||||||
Uint | Int | Uint | Float | Double | |||||||||||
Float | Float | Float | Float | Double | |||||||||||
Double | Double | Double | Double | Double | |||||||||||
Decimal | Decimal | ||||||||||||||
String | |||||||||||||||
Utf8 | |||||||||||||||
Json | |||||||||||||||
Uuid | |||||||||||||||
Date | Date | ||||||||||||||
Datetime | Datetime | ||||||||||||||
Timestamp | Timestamp | ||||||||||||||
Interval | Date | Datetime | Timestamp | Interval |