SQL时间转换函数Convert
语法
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 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 位。始终使用科学记数法。 |
值 |
输出 |
0(默认值) |
小数点的左侧没有逗号,小数点的右侧取两位数。例如 4235.98。 |
1 |
用逗号分隔小数点左侧的每三位数,小数点的右侧取两位数。例如 3,510.92。 |
2 |
小数点的左侧没有逗号,小数点的右侧取四位数。例如 4235.9819。 |
在从 numeric 或 decimal 数据转换为字符数据时,使用 style 128 可删除结果集中的尾随零。
下图说明了 SQL Server Compact Edition 中的显式和隐式数据转换。
下面的示例将 datetime 值转换为 nvarchar 值:
FROM Orders