Литералы (язык Entity SQL)

В этом разделе рассматривается поддержка литералов в Entity SQL .

Null

Литерал null используется для представления значения NULL применительно к любому типу. Литерал null является совместимым с любым типом.

Типизированные значения null могут быть созданы путем применения операции приведения к типу по отношению к литералу NULL. Дополнительные сведения см. в разделе CAST (Entity SQL).

Правила, касающиеся того, где могут использоваться без ограничений литералы null в формате с плавающей запятой, см. в разделе Литералы NULL и определение типов (язык Entity SQL).

Логические

Логические литералы могут быть представлены с помощью ключевых слов true и false.

Целочисленные

Целочисленные литералы могут иметь тип Int32 или Int64. Литерал Int32 представляет собой ряд цифр. Литерал Int64 представляет собой ряд цифр, за которыми следует прописная буква L.

Десятичные

Число с фиксированной запятой (десятичной) представляет собой ряд цифр, точку (.) и еще один ряд цифр, за которыми следует прописная буква «M».

С плавающей запятой

Число двойной точности с плавающей запятой представляет собой ряд цифр, точку (.) и еще один ряд цифр, за которыми может следовать показатель степени. Число с плавающей запятой одинарной точности (или просто число с плавающей запятой) представляет собой число с синтаксисом числа с плавающей запятой двойной точности, за которым следует строчная буква f.

Строковые

Строка — это ряд символов, заключенных в кавычки. Кавычки могут быть либо одинарными ('), либо двойными ("). Символьные строковые литералы могут быть представлены либо в Юникоде, либо в кодировке, отличной от Юникода. Чтобы объявить символьный строковый литерал как представленный в Юникоде, необходимо обозначить литерал префиксом в виде прописной буквы «N». По умолчанию символьные строковые литералы рассматриваются как имеющие кодировку, отличную от Юникода. Не должно быть пробелов между буквой N и полезными данными строкового литерала, а буква N должна быть прописной.

'hello' -- non-Unicode character string literal
N'hello' -- Unicode character string literal
"x"
N"This is a string!"
'so is THIS'

DateTime

Литерал даты-времени является не зависимым от языкового стандарта и состоит из части даты и части времени. Обе части — и даты, и времени — являются обязательными, и какие-либо значения по умолчанию не предусмотрены.

Часть даты должна иметь формат: YYYY-MM-DD, где YYYY представляет собой значение года из четырех цифр от 0001 и 9999, MM — месяц со значением от 1 до 12, а DD — значение дня, допустимое для данного месяца MM.

Часть времени должна иметь формат: HH:MM[:SS, где HH представляет собой значение часа от 0 до 23 включительно, MM — значение минут от 0 до 59 включительно, SS — значение секунд от 0 до 59 включительно, а fffffff — значение долей секунд от 0 до 9999999 включительно. Все диапазоны значений являются включительными. Часть, содержащая доли секунды, является необязательной. Часть, содержащая секунды, является необязательной, если не была задана часть с долями секунды. В последнем случае часть с секундами обязательна. Если секунды или доли секунд не заданы, то по умолчанию используется значение ноль.

Между символом DATETIME и полезными данными литерала может быть любое количество пробелов, но не должно быть новых строк.

DATETIME'2006-10-1 23:11'
DATETIME'2006-12-25 01:01:00.0000000' -- same as DATETIME'2006-12-25 01:01'

Время

Литерал time является независимым от языкового стандарта и состоит только из части времени. Часть времени является обязательной, и для нее не существует значения по умолчанию. Она должна иметь формат HH:MM[:SS[.fffffff]], где HH представляет собой значение часа от 0 до 23 включительно, MM — значение минут от 0 до 59 включительно, SS — значение секунд от 0 до 59 включительно, а fffffff — значение долей секунд от 0 до 9999999 включительно. Все диапазоны значений являются включительными. Часть, содержащая доли секунды, является необязательной. Часть, содержащая секунды, является необязательной, если не была задана часть с долями секунды. В последнем случае часть с секундами обязательна. Если секунды или доли секунды не заданы, то по умолчанию используется значение ноль.

Между символом TIME и полезными данными литерала может быть любое количество пробелов, но не должно быть новых строк.

TIME‘23:11’
TIME‘01:01:00.1234567’

DateTimeOffset

Литерал datetimeoffset является независимым от языкового стандарта и состоит из части даты и части времени. Части даты, времени и смещения являются обязательными, и какие-либо значения по умолчанию не предусмотрены. Часть даты должна иметь формат YYYY-MM-DD, где YYYY представляет собой значение года из четырех цифр между 0001 и 9999, MM — месяц со значением от 1 до 12, а DD — значение суток, допустимое для данного месяца. Часть времени должна иметь формат HH:MM[:SS[.fffffff]], где HH представляет собой значение часа от 0 до 23 включительно, MM — значение минут от 0 до 59 включительно, SS — значение секунд от 0 до 59 включительно, а fffffff — значение долей секунды от 0 до 9999999 включительно. Все диапазоны значений являются включительными. Часть, содержащая доли секунды, является необязательной. Часть, содержащая секунды, является необязательной, если не была задана часть с долями секунды. В последнем случае часть с секундами обязательна. Если секунды или доли секунды не заданы, то по умолчанию используется значение ноль. Часть смещения должна иметь формат {+|-}HH:MM, где HH и MM имеют то же значение, что и в части времени. Значение смещения, однако, должно находиться в пределах от -14:00 до +14:00

Между символом DATETIMEOFFSET и полезными данными литерала может быть любое количество пробелов, но не должно быть новых строк.

DATETIMEOFFSET‘2006-10-1 23:11 +02:00’
DATETIMEOFFSET‘2006-12-25 01:01:00.0000000 -08:30’
Bb399176.note(ru-ru,VS.100).gifПримечание
Допустимое значение литерала Entity SQL может находиться вне допустимого диапазона CLR или источника данных.В этом случае может возникнуть исключение.

Двоичные

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

Символ сокращения X должен быть написан прописными буквами, пробелы между символом X и двоичной строкой не допускаются. Шестнадцатеричные символы также являются нечувствительными к регистру. Если литерал состоит из нечетного количества шестнадцатеричных цифр, то литерал выравнивается вправо к следующей четной шестнадцатеричной цифре путем применения к нему префикса в виде шестнадцатеричной цифры ноль. На размер двоичной строки не распространяются какие-либо ограничения, определяемые форматом.

Binary'00ffaabb'
X'ABCabc'
BINARY    '0f0f0f0F0F0F0F0F0F0F'
X'' –- empty binary string

Guid

Литерал GUID представляет собой идентификатор GUID. Он является последовательностью, начинающейся ключевым словом GUID, за которым следуют шестнадцатеричные цифры в форме, известной как формат реестра: 8-4-4-4-12, заключенные в одиночные кавычки. Шестнадцатеричные цифры являются нечувствительными к регистру.

Между символом GUID и полезными данными литерала может быть любое количество пробелов, но не должно быть новых строк.

Guid'1afc7f5c-ffa0-4741-81cf-f12eAAb822bf'
GUID  '1AFC7F5C-FFA0-4741-81CF-F12EAAB822BF'

См. также

Основные понятия

Общие сведения о языке Entity SQL