リテラル (Entity SQL)

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

Null

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

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

型指定されない NULL リテラルを使用できる場合に関する規則については、「NULL リテラルと型推論」をご覧ください。

ブール型

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

整数型

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

Decimal (10 進数型)

固定小数点数 (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 リテラルは、時刻部分のみで構成され、ロケールに依存しません。 時刻部分は必須で、既定値はありません。 時刻部分は 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'

Note

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

2 項

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

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

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

GUID

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

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

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

関連項目