本主题介绍实体 SQL 对文本的支持。
Null
null 文本用于表示任何类型的 null 值。 null 文本与任何类型兼容。
类型化 null 可以通过对 null 文本进行强制转换来创建。 有关详细信息,请参阅 CAST。
有关可以使用自由浮动 null 文本的规则,请参阅 Null 文本和类型推理。
布尔
布尔文本由关键字 true 和 false.
整数
整数文本可以是类型 Int32 或 Int64。 Int32文本是一系列数字字符。 Int64文本是数字字符系列,后跟大写 L。
十进制
固定点数(小数)是一系列数字字符、一个点(.)和另一系列数字字符,后跟大写“M”。
浮点数、双倍
双精度浮点数是一系列数字字符、一个点(.)和另一系列数值字符,可能后跟指数。 单精度浮点数(或浮点数)是双精度浮点数语法,后跟小写 f。
字符串
字符串是括在引号中的一系列字符。 引号可以是单引号(')也可以是双引号()。 字符串文本可以是 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'
日期时间
日期时间文本独立于区域设置,由日期部分和时间部分组成。 日期和时间部分都是强制性的,并且没有默认值。
日期部分必须采用以下格式:YYYYDD--MM(YYYY0001 和 9999 之间的四位数年份值)是 1 到 12 DD 之间的月份,MM是给定月份MM有效的日期值。
时间部分必须采用以下格式:HH:[:SS[.fffffff]],其中HH小时值介于 0 和 23 之间,MM是介于 0 和 59 之间的分钟值,SS是介于 0 和 59 之间的秒值,fffffff 是介于 0 和 9999999 之间的小MM数秒值。 所有值范围都是包容性的。 小数秒是可选的。 除非指定小数秒,否则秒是可选的;在这种情况下,需要秒。 如果未指定秒或小数秒,将改用默认值零。
DATETIME 符号和文本有效负载之间可以有任意数量的空格,但不能有新行。
DATETIME'2006-10-1 23:11'
DATETIME'2006-12-25 01:01:00.0000000' -- same as DATETIME'2006-12-25 01:01'
时间
时间文本独立于区域设置,仅由时间部分组成。 时间部分是必需的,并且没有默认值。 它必须具有 HH:MM[:SS[.fffffff]]格式,其中 HH 是介于 0 到 23 之间的小时值,MM 是介于 0 和 59 之间的分钟值,SS 是介于 0 和 59 之间的第二个值,fffffff 是介于 0 和 9999999 之间的第二个分数值。 所有值范围都是包容性的。 小数秒是可选的。 除非指定小数秒,否则秒是可选的;在这种情况下,需要秒。 如果未指定秒或分数,将改用默认值零。
TIME 符号和文本有效负载之间可以有任意数量的空格,但不能有新行。
TIME'23:11'
TIME'01:01:00.1234567'
日期时间偏移 (DateTimeOffset)
datetimeoffset 文本独立于区域设置,由日期部分、时间部分和偏移部分组成。 所有日期、时间和偏移部分都是强制性的,并且没有默认值。 日期部分的格式必须为 YYYY-MM-DD,其中 YYYY 是 0001 到 9999 之间的四位数年份值,MM 是 1 到 12 之间的月份,DD 是给定月份有效的日期值。 时间部分必须采用 HH:MM[:SS[.fffffff]]格式,其中 HH 是介于 0 到 23 之间的小时值,MM 是介于 0 和 59 之间的分钟值,SS 是介于 0 和 59 之间的第二个值,fffffff 是介于 0 和 9999999 之间的小数秒值。 所有值范围都是包容性的。 小数秒是可选的。 除非指定小数秒,否则秒是可选的;在这种情况下,需要秒。 如果未指定秒或分数,将改用默认值零。 偏移部分的格式必须为 {+|-}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'
注释
有效的实体 SQL 文本值可能超出 CLR 或数据源支持的范围。 这可能会导致异常
二进制
二进制字符串文本是由关键字二进制或快捷符号或快捷符号Xx后面的单引号分隔的十六进制数字序列。 快捷符号 X 不区分大小写。 关键字 binary 和二进制字符串值之间允许有零个或多个空格。
十六进制字符也区分大小写。 如果文本由十六进制数字的奇数组成,则文本将与下一个甚至十六进制数字对齐,方法是将文本前缀为十六进制零位。 二进制字符串的大小没有正式限制。
Binary'00ffaabb'
X'ABCabc'
BINARY    '0f0f0f0F0F0F0F0F0F0F'
X'' –- empty binary string
Guid
文本 GUID 表示全局唯一标识符。 它是由关键字 GUID 构成的序列,后跟称为 注册表 格式的十六进制数字:用单引号括起来的 8-4-4-4-12。 十六进制数字不区分大小写。
GUID 符号和文本有效负载之间可以有任意数量的空格,但不能有新行。
Guid'1afc7f5c-ffa0-4741-81cf-f12eAAb822bf'
GUID  '1AFC7F5C-FFA0-4741-81CF-F12EAAB822BF'