Literale (Entity SQL)
In diesem Thema wird die Entity SQL-Unterstützung für Literale beschrieben.
NULL
Das NULL-Literal wird verwendet, um für einen beliebigen Typ den Wert Null darzustellen. Das NULL-Literal ist mit jedem Typ kompatibel.
Typisierte Nullen können durch Umwandlung eines NULL-Literals erstellt werden. Weitere Informationen finden Sie unter CAST (Entity SQL).
Regeln zur Verwendung von nicht typisierten NULL-Literalen finden Sie unter NULL-Literale und Typrückschluss (Entity SQL).
Boolean
Boolesche Literale werden durch die Schlüsselwörter true und false dargestellt.
Integer
Ganzzahlliterale können vom Typ Int32 oder Int64 sein. Ein Int32-Literal ist eine Folge numerischer Zeichen. Ein Int64-Literal ist eine Folge numerischer Zeichen, auf die der Großbuchstabe "L" folgt.
Decimal
Eine Festkommazahl (Dezimalzahl) besteht aus einer Folge numerischer Zeichen, einem Punkt (.) und einer weiteren Folge numerischer Zeichen, auf die der Großbuchstabe "M" folgt.
Float, Double
Eine Gleitkommazahl mit doppelter Genauigkeit besteht aus einer Folge numerischer Zeichen, einem Punkt (.) und einer weiteren Folge numerischer Zeichen, auf die ein Exponent folgen kann. Eine Gleitkommazahl mit einfacher Genauigkeit (oder "Float") besteht aus einer Gleitkommazahlensyntax mit doppelter Genauigkeit, auf die der Kleinbuchstabe "f" folgt.
String
Ein String ist eine in Anführungszeichen eingeschlossene Zeichenfolge. Die Zeichenfolge kann entweder in einfache ('
) oder doppelte (") Anführungszeichen eingeschlossen sein. Zeichenfolgenliterale sind entweder Unicode oder Nicht-Unicode. Um ein Zeichenfolgenliteral als Unicode zu deklarieren, stellen Sie dem Literal ein großgeschriebenes "N" voran. Standardmäßig werden Nicht-Unicode-Zeichenfolgenliterale verwendet. Zwischen dem "N" und dem Inhalt des Zeichenfolgenliterals dürfen keine Leerzeichen stehen, und "N" muss ein Großbuchstabe sein.
'hello' -- non-Unicode character string literal
N'hello' -- Unicode character string literal
"x"
N"This is a string!"
'so is THIS'
DateTime
Ein datetime-Literal ist unabhängig vom Gebietsschema und besteht aus einem Datums- und einem Uhrzeitteil. Datums- und einem Uhrzeitteile sind obligatorisch, und es gibt keine Standardwerte.
Der Datumsteil muss folgendes Format aufweisen: YYYY-MM-DD, wobei YYYY eine Jahresangabe mit vier Ziffern zwischen 0001 und 9999, MM der Monat zwischen 1 und 12 und DD der Wert für den Tag ist, der für den gegebenen Monat MM gültig ist.
Der Uhrzeitteil muss folgendes Format aufweisen: HH:MM[:SS[.fffffff]], wobei HH der Stundenwert zwischen 0 und 23, MM der Minutenwert zwischen 0 und 59, SS der Sekundenwert zwischen 0 und 59 und fffffff der Sekundenbruchteilwert zwischen 0 und 9999999 ist. Alle Wertebereiche umfassen die Endwerte. Sekundenbruchteile sind optional. Sekunden sind optional, wenn keine Sekundenbruchteile angegeben werden. Andernfalls sind Sekunden erforderlich. Wenn keine Werte für Sekunden und Sekundenbruchteile angegeben sind, wird als Standardwert jeweils 0 verwendet.
Zwischen dem DATETIME-Symbol und dem Inhalt des Literals dürfen eine beliebige Anzahl von Leerzeichen, jedoch keine Zeilenumbrüche stehen.
DATETIME'2006-10-1 23:11'
DATETIME'2006-12-25 01:01:00.0000000' -- same as DATETIME'2006-12-25 01:01'
Time
Ein Uhrzeitliteral ist unabhängig vom Gebietsschema und besteht nur aus einem Uhrzeitteil. Der Uhrzeitteil ist erforderlich, und es gibt keinen Standardwert. Der Uhrzeitteil muss das Format HH:MM[:SS[.fffffff]] aufweisen, wobei HH der Stundenwert zwischen 0 und 23, MM der Minutenwert zwischen 0 und 59, SS der Sekundenwert zwischen 0 und 59 und fffffff der Sekundenbruchteilwert zwischen 0 und 9999999 ist. Alle Wertebereiche umfassen die Endwerte. Sekundenbruchteile sind optional. Sekunden sind optional, wenn keine Sekundenbruchteile angegeben werden. Andernfalls sind Sekunden erforderlich. Wenn keine Werte für Sekunden und Sekundenbruchteile angegeben sind, wird als Standardwert jeweils 0 verwendet.
Zwischen dem TIME-Symbol und dem Inhalt des Literals dürfen eine beliebige Anzahl von Leerzeichen, jedoch keine Zeilenumbrüche stehen.
TIME‘23:11’
TIME‘01:01:00.1234567’
DateTimeOffset
Ein "datetimeoffset"-Literal ist unabhängig vom Gebietsschema und besteht aus einem Datums- und einem Uhrzeitteil sowie einem Offsetteil. Datums- und Uhrzeitteile sowie Offsetteile sind obligatorisch, und es gibt keine Standardwerte. Der Datumsteil muss das Format YYYY-MM-DD aufweisen, wobei YYYY eine Jahresangabe mit vier Ziffern zwischen 0001 und 9999, MM der Monat zwischen 1 und 12 und DD der Wert für den Tag ist, der für den gegebenen Monat gültig ist. Der Uhrzeitteil muss das Format HH:MM[:SS[.fffffff]] aufweisen, wobei HH der Stundenwert zwischen 0 und 23, MM der Minutenwert zwischen 0 und 59, SS der Sekundenwert zwischen 0 und 59 und fffffff der Sekundenbruchteilwert zwischen 0 und 9999999 ist. Alle Wertebereiche umfassen die Endwerte. Sekundenbruchteile sind optional. Sekunden sind optional, wenn keine Sekundenbruchteile angegeben werden. Andernfalls sind Sekunden erforderlich. Wenn keine Werte für Sekunden und Sekundenbruchteile angegeben sind, wird als Standardwert jeweils 0 verwendet. Der Offsetteil muss das Format {+|-}HH:MM aufweisen, wobei HH und MM dieselbe Bedeutung wie im Uhrzeitteil haben. Der Bereich des Offsets muss jedoch zwischen -14:00 und +14:00 liegen.
Zwischen dem DATETIMEOFFSET-Symbol und dem Inhalt des Literals dürfen eine beliebige Anzahl von Leerzeichen, jedoch keine Zeilenumbrüche stehen.
DATETIMEOFFSET‘2006-10-1 23:11 +02:00’
DATETIMEOFFSET‘2006-12-25 01:01:00.0000000 -08:30’
Hinweis |
---|
Ein gültiger Entity SQL-Literalwert kann sich außerhalb der für die CLR oder die Datenquelle unterstützten Bereiche befinden. Dies führt möglicherweise zu einer Ausnahme. |
Binary
Ein binäres Zeichenfolgenliteral ist eine in einfache Anführungszeichen eingeschlossene Folge von Hexadezimalziffern, die auf das binary-Schlüsselwort oder das Symbol X folgt. Beachten Sie, dass für das Schlüsselwort binary die Groß-/Kleinschreibung nicht relevant ist. Zwischen dem binary-Schlüsselwort und dem binären Zeichenfolgenwert können keine oder mehrere Leerzeichen stehen.
Das Symbol X muss ein Großbuchstabe sein, und zwischen dem Symbol X und der binären Zeichenfolge dürfen keine Leerzeichen stehen. Bei den Hexadezimalzeichen wird außerdem die Groß-/Kleinschreibung nicht berücksichtigt. Wenn das Literal aus einer ungeraden Anzahl von Hexadezimalziffern zusammengesetzt ist, wird das Literal zu einer geraden Anzahl von Hexadezimalziffern aufgefüllt, indem dem Literal die Hexadezimalziffer 0 vorangestellt wird. Für die Größe von binären Zeichenfolgen gibt es keine formale Beschränkung.
Zwischen dem Symbol X und dem Inhalt des Zeichenfolgenliterals dürfen keine Leerzeichen stehen, und X muss ein Großbuchstabe sein. Zwischen dem BINARY-Symbol und dem Inhalt des Literals dürfen eine beliebige Anzahl von Leerzeichen, jedoch keine Zeilenumbrüche stehen.
Binary'00ffaabb'
X'ABCabc'
BINARY '0f0f0f0F0F0F0F0F0F0F'
X'' –- empty binary string
Guid
Ein GUID-Literal stellt einen global eindeutigen Bezeichner dar. Es handelt sich dabei um eine Sequenz, die aus dem Schlüsselwort GUID besteht, auf das in einfachen Anführungszeichen eingeschlossene Hexadezimalzeichen in der als Registrierungsformat bekannten Form 8-4-4-4-12 folgen. Bei den Hexadezimalzeichen wird die Groß/- Kleinschreibung nicht berücksichtigt.
Zwischen dem GUID-Symbol und dem Inhalt des Literals dürfen eine beliebige Anzahl von Leerzeichen, jedoch keine Zeilenumbrüche stehen.
Guid'1afc7f5c-ffa0-4741-81cf-f12eAAb822bf'
GUID '1AFC7F5C-FFA0-4741-81CF-F12EAAB822BF'