Literály (Entity SQL)
Toto téma popisuje podporu entity SQL pro literály.
Null
Literál null se používá k reprezentaci hodnoty null pro libovolný typ. Literál null je kompatibilní s libovolným typem.
Typed nulls can be created by a cast over a null literal. Další informace naleznete v tématu CAST.
Pravidla o tom, kde lze použít volné plovoucí literály null, naleznete v tématu Literály null a odvození typu.
Logická hodnota
Logické literály jsou reprezentovány klíčovými slovy true
a false
.
Celé číslo
Celočíselné literály mohou být typu Int32 nebo Int64. Literál Int32 je řada číselných znaků. Literál Int64 je řada číselných znaků následovaných velkým písmenem L.
Desetinné číslo
Číslo s pevným bodem (desetinné číslo) je řada číselných znaků, tečka (.) a další řada číselných znaků následovaných velkými písmeny M.
Float, Double
Číslo s plovoucí desetinnou čárkou s dvojitou přesností je řada číselných znaků, tečka (.) a další řada číselných znaků, za kterými může následovat exponent. Jednopřesnost číslo s plovoucí desetinnou čárkou (nebo plovoucí desetinná čárka) je syntaxe čísla s plovoucí desetinnou čárkou s dvojitou přesností následovanou malými písmeny f.
String
Řetězec je řada znaků uzavřených v uvozovkách. Uvozovky můžou být buď jednoduché ('
) nebo obě dvojité uvozovky ("). Literály řetězců znaků můžou být unicode nebo jiné než Unicode. Chcete-li deklarovat literál řetězce znaků jako Unicode, předpona literálu velkým písmenem "N". Výchozí hodnota je literálů řetězců bez znaku Unicode. Mezi datovou částí N a řetězcovou datovou částí literálu nesmí být mezery a písmeno N musí obsahovat velká písmena.
'hello' -- non-Unicode character string literal
N'hello' -- Unicode character string literal
"x"
N"This is a string!"
'so is THIS'
DateTime
Literál datetime je nezávislý na národním prostředí a skládá se z části data a časové části. Části data i času jsou povinné a neexistují žádné výchozí hodnoty.
Část data musí mít formát: YYYY
DD
-MM
-, kde YYYY
je čtyřmístná hodnota roku mezi 0001 a 9999, MM
je měsíc mezi 1 a 12 a DD
je hodnota dne platná pro daný měsíc .MM
Časová část musí mít formát: HH
:[:SS
[.fffffff]], kde HH
je hodinová hodnota mezi 0 a 23, MM
je minutová hodnota mezi 0 a 59, SS
je druhá hodnota mezi 0 a 59 a fffffff je desetinná druhá hodnota meziMM
0 a 9999999. Všechny rozsahy hodnot jsou inkluzivní. Zlomkové sekundy jsou volitelné. Sekundy jsou volitelné, pokud nejsou zadány desetinné sekundy; v tomto případě jsou vyžadovány sekundy. Pokud nezadáte sekundy nebo zlomkové sekundy, použije se místo toho výchozí hodnota nuly.
Mezi symbolem DATETIME a datovou částí literálu může být libovolný počet mezer, ale žádné nové řádky.
DATETIME'2006-10-1 23:11'
DATETIME'2006-12-25 01:01:00.0000000' -- same as DATETIME'2006-12-25 01:01'
Čas
Časový literál je nezávislý na národním prostředí a skládá se pouze z časové části. Časová část je povinná a neexistuje žádná výchozí hodnota. Musí mít formát HH:MM[:SS[.fffffff]], kde HH je hodinová hodnota mezi 0 a 23, MM je minutová hodnota mezi 0 a 59, SS je druhá hodnota mezi 0 a 59 a fffffff je druhá desetinná hodnota mezi 0 a 9999999. Všechny rozsahy hodnot jsou inkluzivní. Zlomkové sekundy jsou volitelné. Sekundy jsou volitelné, pokud nejsou zadány desetinné sekundy; v tomto případě jsou vyžadovány sekundy. Pokud nezadáte sekundy nebo zlomky, použije se místo toho výchozí hodnota nuly.
Mezi symbolem TIME a datovou částí literálu může být libovolný počet mezer, ale žádné nové řádky.
TIME'23:11'
TIME'01:01:00.1234567'
DateTimeOffset
Literál datetimeoffset je nezávislý na národním prostředí a skládá se z části data, časové části a odsazené části. Všechny části data, času a posunu jsou povinné a neexistují žádné výchozí hodnoty. Část data musí mít formát RRRR-MM-DD, kde RRRR je čtyřmístná hodnota roku mezi 0001 a 9999, MM je měsíc mezi 1 a 12 a DD je hodnota dne platná pro daný měsíc. Časová část musí mít formát HH:MM[:SS[.fffffff]], kde HH je hodinová hodnota mezi 0 a 23, MM je minutová hodnota mezi 0 a 59, SS je druhá hodnota mezi 0 a 59 a fffffff je desetinná druhá hodnota mezi 0 a 9999999. Všechny rozsahy hodnot jsou inkluzivní. Zlomkové sekundy jsou volitelné. Sekundy jsou volitelné, pokud nejsou zadány desetinné sekundy; v tomto případě jsou vyžadovány sekundy. Pokud nezadáte sekundy nebo zlomky, použije se místo toho výchozí hodnota nuly. Odsazení musí mít formát {+|-}HH:MM, kde HH a MM mají stejný význam jako v časové části. Rozsah posunu však musí být v rozmezí -14:00 až + 14:00.
Mezi symbolem DATETIMEOFFSET a datovou částí literálu může být libovolný počet mezer, ale žádné nové řádky.
DATETIMEOFFSET'2006-10-1 23:11 +02:00'
DATETIMEOFFSET'2006-12-25 01:01:00.0000000 -08:30'
Poznámka:
Platná hodnota literálu Entity SQL může spadat mimo podporované rozsahy modulu CLR nebo zdroj dat. To může vést k výjimce.
Binární
Binární řetězcový literál je posloupnost šestnáctkových číslic oddělených jednoduchými uvozovkami za binárním slovem nebo symbolem X
zástupce nebo x
. Symbol zástupce X
nerozlišuje velká a malá písmena. Mezi klíčovým slovem binary
a binární řetězcovou hodnotou je povolena nula nebo více mezer.
Hexadecimální znaky také nerozlišují velká a malá písmena. Pokud se literál skládá z lichého počtu šestnáctkových číslic, literál se zarovná k další sudé šestnáctkové číslici tak, že před literál předponou šestnáctkové nuly. Velikost binárního řetězce nemá žádný formální limit.
Binary'00ffaabb'
X'ABCabc'
BINARY '0f0f0f0F0F0F0F0F0F0F'
X'' –- empty binary string
Guid
GUID
Literál představuje globálně jedinečný identifikátor. Jedná se o sekvenci tvořenou klíčovým slovem GUID
následovaným šestnáctkovými číslicemi ve formuláři známém jako formát registru : 8-4-4-4-12 uzavřených v jednoduchých uvozovkách. Šestnáctkové číslice nerozlišují velká a malá písmena.
Mezi symbolem GUID a datovou částí literálu může být libovolný počet mezer, ale žádné nové řádky.
Guid'1afc7f5c-ffa0-4741-81cf-f12eAAb822bf'
GUID '1AFC7F5C-FFA0-4741-81CF-F12EAAB822BF'