Dela via


Literaler (entitets-SQL)

I det här avsnittet beskrivs sql-stöd för entiteter för literaler.

Null

Null-literalen används för att representera värdet null för alla typer. En nullliteral är kompatibel med alla typer.

Inskrivna null-värden kan skapas av en gjuten över en nullliteral. Mer information finns i CAST.

Regler om var kostnadsfria flytande null-literaler kan användas finns i Null-literaler och typinferens.

Booleskt

Booleska literaler representeras av nyckelorden true och false.

Integer

Heltalsliteraler kan vara av typen Int32 eller Int64. En Int32 literal är en serie numeriska tecken. En Int64 literal är en serie numeriska tecken följt av ett versalt L.

Decimal

Ett tal med fast punkt (decimaltecken) är en serie numeriska tecken, en punkt (.) och en annan serie numeriska tecken följt av ett versalt "M".

Flyttal, dubbel

Ett flyttal med dubbel precision är en serie numeriska tecken, en punkt (.) och en annan serie numeriska tecken, eventuellt följt av en exponent. Flyttal med en enda precision (eller flyttal) är en syntax för flyttal med dubbel precision följt av gemener f.

String

En sträng är en serie tecken som omges av citattecken. Citattecken kan vara antingen både enkla citattecken (') eller båda dubbla citattecken ("). Teckensträngliteraler kan vara antingen Unicode eller icke-Unicode. Om du vill deklarera en teckensträngsliteral som Unicode prefixar du literalen med versaler "N". Standardvärdet är teckenliteraler som inte är Unicode-teckensträngar. Det får inte finnas några blanksteg mellan N och strängliteralnyttolasten och N måste vara versaler.

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

Datum/tid

En datetime-literal är oberoende av nationella inställningar och består av en datumdel och en tidsdel. Både datum- och tidsdelar är obligatoriska och det finns inga standardvärden.

Datumdelen måste ha formatet: YYYYDD-MM-, där YYYY är ett fyrsiffrigt årsvärde mellan 0001 och 9999, MM är månaden mellan 1 och 12 och DD är det dagvärde som är giltigt för den angivna månaden .MM

Tidsdelen måste ha formatet: HH:[:SS[.fffffff]], där HH är timvärdet mellan 0 och 23, MM är minutvärdet mellan 0 och 59, SS är det andra värdet mellan 0 och 59 och fffffff är bråk sekundvärdet mellanMM 0 och 9999999. Alla värdeintervall är inkluderande. Bråksekunder är valfria. Sekunder är valfria om inte bråksekunder anges. i det här fallet krävs sekunder. När sekunder eller bråk sekunder inte anges används standardvärdet noll i stället.

Det kan finnas valfritt antal blanksteg mellan DATETIME-symbolen och literalnyttolasten, men inga nya rader.

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

Tid

En tidsliteral är oberoende av nationella inställningar och består endast av en tidsdel. Tidsdelen är obligatorisk och det finns inget standardvärde. Det måste ha formatet HH:MM[:SS[.fffffff]], där HH är timvärdet mellan 0 och 23, MM är minutvärdet mellan 0 och 59, SS är det andra värdet mellan 0 och 59 och fffffff är det andra bråkvärdet mellan 0 och 9999999. Alla värdeintervall är inkluderande. Bråksekunder är valfria. Sekunder är valfria om inte bråksekunder anges. i det här fallet krävs sekunder. När sekunder eller bråk inte har angetts används standardvärdet noll i stället.

Det kan finnas valfritt antal blanksteg mellan TIME-symbolen och literalnyttolasten, men inga nya rader.

TIME'23:11'
TIME'01:01:00.1234567'

DateTimeOffset

En datetimeoffset-literal är oberoende av nationella inställningar och består av en datumdel, en tidsdel och en förskjutningsdel. Alla datum-, tids- och förskjutningsdelar är obligatoriska och det finns inga standardvärden. Datumdelen måste ha formatet YYYY-MM-DD, där ÅÅÅÅ är ett fyrsiffrigt årsvärde mellan 0001 och 9999, MM är månaden mellan 1 och 12 och DD är det dagvärde som är giltigt för den angivna månaden. Tidsdelen måste ha formatet HH:MM[:SS[.fffffff]], där HH är timvärdet mellan 0 och 23, MM är minutvärdet mellan 0 och 59, SS är det andra värdet mellan 0 och 59, och fffffff är bråkvärdet mellan 0 och 9999999. Alla värdeintervall är inkluderande. Bråksekunder är valfria. Sekunder är valfria om inte bråksekunder anges. i det här fallet krävs sekunder. När sekunder eller bråk inte har angetts används standardvärdet noll i stället. Förskjutningsdelen måste ha formatet {+|-}HH:MM, där HH och MM har samma betydelse som i tidsdelen. Förskjutningens intervall måste dock vara mellan -14:00 och + 14:00

Det kan finnas valfritt antal blanksteg mellan DATETIMEOFFSET-symbolen och den literala nyttolasten, men inga nya rader.

DATETIMEOFFSET'2006-10-1 23:11 +02:00'
DATETIMEOFFSET'2006-12-25 01:01:00.0000000 -08:30'

Kommentar

Ett giltigt sql-literalvärde för entitet kan ligga utanför de intervall som stöds för CLR eller datakällan. Detta kan leda till ett undantag

Binära

En binär strängliteral är en sekvens med hexadecimala siffror avgränsade med enkla citattecken efter nyckelordet binärt eller genvägssymbolen X eller x. Genvägssymbolen X är skiftlägesokänslig. Ett noll eller flera blanksteg tillåts mellan nyckelordet binary och det binära strängvärdet.

Hexadecimala tecken är också skiftlägesokänsliga. Om literalen består av ett udda antal hexadecimala siffror justeras literalen till nästa till och med hexadecimala siffra genom att prefixera literalen med en hexadecimal nollsiffra. Det finns ingen formell gräns för storleken på den binära strängen.

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

GUID

En GUID literal representerar en globalt unik identifierare. Det är en sekvens som bildas av nyckelordet GUID följt av hexadecimala siffror i det formulär som kallas registerformat : 8-4-4-4-12 omgiven av enkla citattecken. Hexadecimala siffror är skiftlägesokänsliga.

Det kan finnas valfritt antal blanksteg mellan GUID-symbolen och den literala nyttolasten, men inga nya rader.

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

Se även