语法
CONVERT ( data_type [ ( length ) ] ,expression [ ,style ] )
参数
data_type
目标系统提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用数据类型的详细信息,请参阅
length
nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
expression
任何有效的 SQL Server Compact Edition 表达式。有关详细信息,请参阅
style
日期格式的样式,用于将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式,用于将 float、 real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、 char、varchar、nchar 或 nvarchar 数据类型)。如果 style 为 NULL,则返回的结果也为 NULL。
有关详细信息,请参阅本主题后面的“备注”部分。
数据类型。 表达式 (SQL Server Compact Edition)。
备注
SQL Server 2005 Compact Edition (SQL Server Compact Edition) 支持使用科威特算法的阿拉伯样式的日期格式。
在下表中,左侧的两列表示用于将 datetime 或 smalldatetime 数据转换为字符数据的 style 值。向 style 值添加 100 可获得包含世纪的四位年份 (yyyy)。
不带世纪 (yy) | 带世纪 (yyyy) | 标准 | 输入/输出** |
- | 0 或 100 (*) | 默认值 | mon dd yyyy hh:miAM(或 PM) |
1 | 101 | 美国 | mm/dd/yyyy |
2 | 102 | ANSI | yy.mm.dd |
3 | 103 | 英国/法国 | dd/mm/yy |
4 | 104 | 德国 | dd.mm.yy |
5 | 105 | 意大利 | dd-mm-yy |
6 | 106 | - | dd mon yy |
7 | 107 | - | Mon dd, yy |
8 | 108 | - | hh:mm:ss |
- | 9 或 109 (*) | 默认值 + 毫秒 | mon dd yyyy hh:mi:ss:mmmAM(或 PM) |
10 | 110 | 美国 | mm-dd-yy |
11 | 111 | 日本 | yy/mm/dd |
12 | 112 | ISO | yymmdd |
- | 13 或 113 (*) | 欧洲默认值 + 毫秒 | dd mon yyyy hh:mm:ss:mmm(24h) |
14 | 114 | - | hh:mi:ss:mmm(24h) |
- | 20 或 120 (*) | ODBC 规范 | yyyy-mm-dd hh:mi:ss(24h) |
- | 21 或 121 (*) | ODBC 规范(带毫秒) | yyyy-mm-dd hh:mi:ss.mmm(24h) |
- | 126(***) | ISO8601 | yyyy-mm-ddThh:mm:ss.mmm(不带空格) |
- | 130* | Hijri**** | dd mon yyyy hh:mi:ss:mmmAM |
- | 131* | Hijri**** | dd/mm/yy hh:mi:ss:mmmAM |
* 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120 以及 21 或 121)始终返回世纪 (yyyy)。
** 当转换为 datetime 时输入。当转换为字符数据时输出。
*** 专用于 XML。对于从 datetime 或 smalldatetime 到 character 数据的转换,输出格式如表中所述。对于从 float、money 或 smallmoney 到 character 数据的转换,输出等同于 style 2。对于从 real 到 character 数据的转换,输出等同于 style 1。
**** Hijri 是具有多个变体的日历系统,其中 SQL Server Compact Edition 使用科威特算法。
下表显示用于将 float 或 real 数据转换为字符数据的 style 值:
值 | 输出 |
0(默认值) | 最大为 6 位。根据需要使用科学记数法。 |
1 | 始终为 8 位。始终使用科学记数法。 |
2 | 始终为 16 位。始终使用科学记数法。 |
在下表中,左侧的列表示用于将 money 或 smallmoney 数据转换为字符数据的 style 值。
值 | 输出 |
0(默认值) | 小数点的左侧没有逗号,小数点的右侧取两位数。例如 4235.98。 |
1 | 用逗号分隔小数点左侧的每三位数,小数点的右侧取两位数。例如 3,510.92。 |
2 | 小数点的左侧没有逗号,小数点的右侧取四位数。例如 4235.9819。 |
在从 numeric 或 decimal 数据转换为字符数据时,使用 style 128 可删除结果集中的尾随零。
下图说明了 SQL Server Compact Edition 中的显式和隐式数据转换。
示例
下面的示例将 datetime 值转换为 nvarchar 值:
SELECT OrderDate, CONVERT(nvarchar(10), OrderDate, 101)
FROM Orders