リテラル (Entity SQL)

このトピックでは、リテラルに関する Entity SQL のサポートについて説明します。

Null

NULL リテラルは、あらゆる型で NULL 値を表す際に使用されます。NULL リテラルは、すべての型と互換性があります。

NULL リテラルをキャストすることによって、型指定された NULL を作成できます。詳細については、「CAST (Entity SQL)」を参照してください。

どのような場合に型指定されない NULL リテラルを使用できるかの規則については、「NULL リテラルと型の推論 (Entity SQL)」を参照してください。

Boolean

ブール型リテラルは、truefalse のキーワードで表されます。

Integer

整数リテラルには、Int32 型と Int64 型とがあります。Int32 リテラルは、一連の数字で構成されます。Int64 リテラルは、一連の数字で構成され、最後に大文字の L が付きます。

Decimal

固定小数点数 (decimal) は、一連の数字、ドット (.)、および別の一連の数字で構成され、最後に大文字の "M" が付きます。

Float、Double

倍精度浮動小数点数は、一連の数字、ドット (.)、および別の一連の数字で構成され、場合によっては最後に指数が付きます。単精度浮動小数点数 (float) は、倍精度浮動小数点数の構文に続けて小文字の f が付きます。

String

文字列は、引用符で囲まれた一連の文字です。引用符には、単一引用符 (') または二重引用符 (") を使用できますが、両者を混在させることはできません。文字列リテラルには、Unicode と非 Unicode のどちらでも使用できます。文字列リテラルを Unicode として宣言するには、リテラルの前に大文字の "N" を付けます。既定では、Unicode でない文字列リテラルです。N と文字列リテラルの間に空白は含めません。また、N は大文字にする必要があります。

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

DateTime

datetime リテラルは、日付部分と時刻部分とで構成され、ロケールに依存しません。日付部分と時刻部分のどちらも省略することはできず、既定値はありません。

日付部分は、YYYY-MM-DD という形式になっている必要があります。YYYY は 0001 ~ 9999 の 4 桁の年を、MM は 1 ~ 12 の月を表します。また、DD は、指定した月 (MM) の有効な日を表します。

時刻部分は HH:MM[:SS[.fffffff]] の形式にする必要があります。ここで、HH は 0 ~ 23 時の値、MM は 0 ~ 59 分の値、SS は 0 ~ 59 秒の値、fffffff は 0 ~ 9999999 の 1 秒未満部分の値を表します。いずれも両端の値を含みます。1 秒未満部分は省略可能です。1 秒未満部分を指定しなければ、秒は省略可能です。1 秒未満部分を指定する場合、秒は必須です。秒も 1 秒未満部分も指定しない場合は、既定値の 0 が使用されます。

DATETIME 記号とリテラル ペイロード間の空白の数に制限はありませんが、改行はできません。

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

Time

time リテラルは、時刻部分のみで構成され、ロケールに依存しません。時刻部分は必須で、既定値はありません。時刻部分は HH:MM[:SS[.fffffff]] の形式にする必要があります。ここで、HH は 0 ~ 23 時の値、MM は 0 ~ 59 分の値、SS は 0 ~ 59 秒の値、fffffff は 0 ~ 9999999 の 1 秒未満部分の値を表します。いずれも両端の値を含みます。1 秒未満部分は省略可能です。1 秒未満部分を指定しなければ、秒は省略可能です。1 秒未満部分を指定する場合、秒は必須です。秒も 1 秒未満部分も指定しない場合は、既定値の 0 が使用されます。

TIME 記号とリテラル ペイロード間の空白の数に制限はありませんが、改行はできません。

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

DateTimeOffset

datetimeoffset リテラルは、日付部分、時刻部分、およびオフセット部分で構成され、ロケールに依存しません。日付部分、時刻部分、オフセット部分はすべて必須で、既定値はありません。日付部分は YYYY-MM-DD の形式にする必要があります。ここで、YYYY は 0001 ~ 9999 の 4 桁の年、MM は 1 ~ 12 の月、DD は特定の月の有効な日付を表します。時刻部分は HH:MM[:SS[.fffffff]] の形式にする必要があります。ここで、HH は 0 ~ 23 時の値、MM は 0 ~ 59 分の値、SS は 0 ~ 59 秒の値、fffffff は 0 ~ 9999999 の 1 秒未満部分の値を表します。いずれも両端の値を含みます。1 秒未満部分は省略可能です。1 秒未満部分を指定しなければ、秒は省略可能です。1 秒未満部分を指定する場合、秒は必須です。秒も 1 秒未満部分も指定しない場合は、既定値の 0 が使用されます。オフセット部分は {+|-}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’

[!メモ]

有効な Entity SQL リテラル値は、CLR またはデータ ソースに対してサポートされている範囲に含まれないことがあります。その結果、例外が発生する可能性があります。

Binary

バイナリ文字列リテラルは、binary キーワードまたは簡略記号 X と、それに続く単一引用符で囲まれた一連の 16 進数字で構成されます。キーワードとして、binary は大文字と小文字が区別されます。また、キーワード binary と、バイナリ文字列値との間には、0 個以上の空白文字が許容されます。

簡略記号 X は大文字にする必要があり、X とバイナリ文字列との間に空白を含めることはできません。16 進文字についても、大文字と小文字は区別されません。リテラルが奇数個の 16 進数字で構成されていた場合、桁数が次に大きな偶数個となるように、先頭に 16 進数の 0 を付けることによって調整されます。バイナリ文字列にサイズの制限はありません。

X 記号と文字列リテラル ペイロードの間に空白を含めることはできません。X は大文字にする必要があります。BINARY 記号とリテラル ペイロード間の空白の数に制限はありませんが、改行はできません。

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

Guid

GUID リテラルは、グローバル一意識別子を表します。キーワード GUID の後に、単一引用符で囲まれた 8-4-4-4-12 形式 (レジストリ形式) の 16 進数字が続きます。16 進数字の大文字と小文字は区別されません。

GUID 記号とリテラル ペイロード間の空白の数に制限はありませんが、改行はできません。

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

参照

概念

Entity SQL の概要