Типы, доступные в языке запросов
Некоторые типы, поддерживаемые в языке запросов, позволяют обращаться к свойствам, вызывать методы и выполнять выражения, которые определены для этих типов во встроенном языке. Далее перечислены типы и та функциональность, которая доступна для них в языке запросов.
Null
Тип Null имеет единственное значение: Null.
Во встроенном языке для работы со значениями Null, получаемыми из языка запросов или внешних баз данных, используется тип Null пространства имен Стд::БазаДанных.
В языке запросов значение Null обозначает отсутствие данных. Например, когда при соединении таблиц для поля первой таблицы невозможно подобрать ни одной записи из второй таблицы, которая удовлетворяла бы условию связи. В этом случае поле второй таблицы будет иметь значение Null.
Если не сказано иного, в языке запросов любое выражение с участием NULL возвращает NULL:
2 + NULLдаетNULLКонтрагент == NULLдаетNULL
Есть две операции, которые позволяют определить, является ли указанное значение значением Null:
При сортировке по возрастанию Null всегда идет первым на всех СУБД.
Булевы операции со значением Null:
-
Null или ЛожьдаетNull -
Null или ИстинадаетИстина -
Null и ЛожьдаетЛожь -
Null и ИстинадаетNull -
не NullдаетNull
При использовании в агрегатных функциях значения Null игнорируются, кроме функции Количество(*).
Байты
Используется для работы с двоичными данными (байтовыми строками).
Литерал
Соответствует литералу типа Байты встроенного языка. Пример:
Байты{DEADBEEF}
Для записи шестнадцатеричного числа допускается использование как нижнего, так и верхнего регистра.
Булево
Поддерживаются все свойства и методы типа Булево встроенного языка.
Литерал
Соответствует литералу типа Булево во встроенном языке. Пример:
Сообщения.Доставлено == Ложь
Время
Поддерживаются все свойства и методы т ипа Время встроенного языка.
Реализовано вычитание и сложение:
Время-Время=ДлительностьВремя+Длительность=Время
Литерал
Соответствует литералу типа Время во встроенном языке. Пример:
Время{00:00:00}
Время{12:34:56.789}
Ограничения:
- Минимальное допустимое значение времени —
00:00:00.000. - Максимальное допустимое значение времени —
23:59:59.999.
Дата
Поддерживаются все свойства и методы типа Дата встроенного языка.
Реализовано вычитание и сложение:
Дата-Дата=ДлительностьДата+Длительность=Дата
Литерал
Соответствует литералу типа Дата во встроенном языке. Пример:
Дата{2024-01-01}
Ограничения:
- Минимальное допустимое значение даты —
01.01.0001. - Максимальное допустимое значение даты —
31.12.9999.
ДатаВремя
Поддерживаются все свойства и методы типа ДатаВремя встроенного языка.
При выполнении метода ВМомент() смещение часового пояса будет вычтено из значения ДатаВремя. Запросы с использованием этого метода могут работать гораздо медленнее.
Реализовано вычитание и сложение:
ДатаВремя-ДатаВремя=ДлительностьДатаВремя+Длительность=ДатаВремя
Реализован конструктор:
ДатаВремя(дата)
ДатаВремя(дата, время)
Литерал
Соответствует литералу типа ДатаВремя во встроенном языке. Пример:
ДатаВремя{2024-01-01 00:00:00}
Ограничения:
- Минимальное допустимое значение даты —
01.01.0001 00:00. - Максимальное допустимое значение даты —
31.12.9999 23:59:59.999.
Длительность
Поддерживаются все свойства и методы типа Длительность встроенного языка.
Реализовано сложение со значениями других типов:
Дата+Длительность=ДатаВремя+Длительность=ВремяДатаВремя+Длительность=ДатаВремя
Литерал
Соответствует литералу типа Длительность во встроенном языке. Пример:
1д2ч3м4с5мс
-2ч
Ограничения:
- Минимальное допустимое значение длительности — (-1018 + 1) миллисекунд.
- Максимальное допустимое значение длительности — (1018 - 1) миллисекунд.
Момент
Реализован метод ВДатаВремя()
При выполнении метода ВДатаВремя() смещение часового пояса будет прибавлено к значению Момент. Запросы с использованием этого метода могут работать гораздо медленнее
Литерал
Соответствует литералу типа Момент во встроенном языке. Пример:
Момент{2024-01-01T00:00:00Z}
Ограничения:
- Минимальное допустимое значение момента —
01.01.0001 00:00 UTC. - Максимальное допустимое значение момента —
31.12.3999 23:59 UTC.
Неопределено
Используется для работы со значением Неопределено.
Литерал
Соответствует литералу типа Неопределено во встроенном языке. Пример:
ДокументыПродаж.Договор == Неопределено