文本(实体 SQL)

本主题介绍实体 SQL 对文本的支持。

Null

null 文本用于表示任何类型的 null 值。 null 文本与任何类型兼容。

类型化 null 可以通过对 null 文本进行强制转换来创建。 有关详细信息,请参阅 CAST

有关可以使用自由浮动 null 文本的规则,请参阅 Null 文本和类型推理

布尔

布尔文本由关键字 truefalse.

整数

整数文本可以是类型 Int32Int64Int32文本是一系列数字字符。 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--MMYYYY0001 和 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'

另请参阅