Microsoft SQL Server 2000 的国际化功能(1)(3)

2008-04-02 10:47:00来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

chin a i t p oe er . co msZSXwpB

无论何时要将 Unicode 数据插入到这些列中,这些列都会使用 WideCharToMultiByte API 连同和排序规则相关联的代码页从 Unicode 进行内部转换。每当字符无法在给定代码页上显示时,他都将被替换为问号 (?);这样,不规范的问号就能够很恰当地指出因这种转换而被破坏的数据。另外,问号还会很恰当地指出您的确需要一个 Unicode 数据类型。假如您使用的是非 Unicode 类型的字符串字面量,则将首先使用数据库的默认代码页(从其排序规则派生)对其进行转换。chin a i t p oe er . co msZSXwpB

当代码页中并不包含您要支持的任何字符时,若要尝试存储数据,则可能碰到另一个问题。该问题的一个最好示例就是阿拉伯语脚本:他支持多种语言,包括伊朗语、柏柏尔语、波斯语、克什米尔语、哈萨克语、吉尔吉斯语、库尔德语、普什图语、信德语、Uighur 和乌尔都语等。以上任何语言都有作为 Windows 代码页 1256 基础的阿拉伯语所没有的附加字符。假如使用阿拉伯语排序规则在非 Unicode 列中存储这些额外的字符,这些字符将被转换为问号。之所以会产生这一问题,是因为在于多数情况下,Windows 会将某个特定代码页视作“最适合的”代码页。这意味着将无法确保您能够依赖该代码页来处理任何文本,但是他仍是最适合的可用代码页。chin a i t p oe er . co msZSXwpB

Unicode 文本类型:nchar、nvarchar 和 ntext

SQL-92 规范定义了这些“N”(代表国家)数据类型,但没有特别需要将他们用于 Unicode,这些数据类型的实际定义将留待数据库平台或研发人员来处理。在 SQL Server 7.0 和 SQL Server 2000 中,这些数据类型的定义等同于 UCS-2/UTF-16 Unicode。务必要牢记,这是针对 Microsoft SQL Server 而言的。当您使用其他数据库服务器(如 Sybase SQL Server)时,务必要知道“N”数据类型并不特指 Unicode。chin a i t p oe er . co msZSXwpB

对于复杂脚本(如印地语和泰米尔语)的存储,务必要注意数据的顺序应该正确。许多种语言(如泰米尔语)实际上规定了某些字母在文本呈现时必须重新排序,从而使文本在内存中存储时的逻辑顺序不同于用户界面所显示的可视顺序。对于任何一种复杂的脚本语言(包括任何的印度语、阿拉伯语、波斯语、希伯来语连同其他许多种语言),数据都始终应该按照正确的逻辑顺序进行存储。这些数据的实际呈现是另外一个问题(请参见本文稍后的用户界面中的多种语言数据)。chin a i t p oe er . co msZSXwpB

虽然“N”列确实支持任何语言或语言组合的数据,但只能以一种排序规则对这些数据进行实际排序(该问题的意义和影响将在排序规则中进一步讨论)。本文先前所提及的代码页限制均不适用于 Unicode 列。chin a i t p oe er . co msZSXwpB

日期/时间类型:datetime 和 smalldatetime

实际的数据类型没有实际的国际化含义;他们表示具备以下定义的日期/时间值:chin a i t p oe er . co msZSXwpB

datetimechin a i t p oe er . co msZSXwpB

从公历 1753 年 1 月 1 日到公历 9999 年 12 月 31 日的日期和时间,精度为 1/300 秒(即 3.33 毫秒或 0.00333 秒)。chin a i t p oe er . co msZSXwpB

smalldatetimechin a i t p oe er . co msZSXwpB

从公历 1900 年 1 月 1 日到公历 2079 年 6 月 6 日的日期和时间,精度为分钟。29.998 秒或更小的 smalldatetime 值将下舍入到最接近的分钟数;而 29.999 秒或更大的值则上舍入至最接近的分钟数。chin a i t p oe er . co msZSXwpB

Microsoft SQL Server 不接受这些范围外的数据。实际数据在内部存储为两个整数(即 datetime 的 4 个字节整数和 smalldatetime 的 2 个字节整数),他们表示所讨论的日期和时间。由于实际值对于特定于区域配置的格式转换并没有任何实际的意义,所以将由研发人员按照需要来定义这种转换。chin a i t p oe er . co msZSXwpB

SQL Server 2000 支持多种不同的可在服务器上执行且特定于区域配置的转换,而不用依靠研发人员提供的定制解决方案。这些日期样式能够通过 CONVERT 函数来访问,该函数包括一种数据类型、一个表达式和一种可选样式,如下表所示。chin a i t p oe er . co msZSXwpB

包含世纪 不包含世纪 标准 输入(转换为 datetime)
输出(转换为文本)
0 或 100 - 默认值 mon dd yyyy hh:miAM(或 PM)
101 1 美国英语 mm/dd/yy
102 2 ANSI yy.mm.dd
103 3 英国英语/法语 dd/mm/yy
104 4 德语 dd.mm.yy
105 5 意大利语 dd-mm-yy
106 6 - dd mon yy
107 7 - Mon dd, yy
108 8 - hh:mm:ss
9 or 109 - 默认值 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
110 10 美国英语 mm-dd-yy
111 11 日本 yy/mm/dd
112 12 ISO yymmdd
13 or 113 - 欧洲默认值 毫秒 dd mon yyyy hh:mm:ss:mmm(24 小时)
114 14 - hh:mi:ss:mmm(24 小时)
20 或 120 - ODBC 规范 yyyy-mm-dd hh:mi:ss(24h)
21 或 121 - ODBC 规范 毫秒 yyyy-mm-dd hh:mi:ss.mmm(24 小时)
126 - ISO8601(无空格) yyyy-mm-dd Thh:mm:ss:mmm
130 - 科威特语 (Hijri) dd mon yyyy hh:mi:ss:mmmAM
131 - 科威特语 (Hijri) dd/mm/yy hh:mi:ss:mmmAM

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Microsoft SQL Server 2000 的国际化功能(2)

下一篇: Microsoft SQL Server 2000 中查询优化器使用的统计(2)