SQL时间转换函数Convert

 

2009年6月13日 - 田勇 - 毕业了 语法

CONVERT ( data_type [ ( length ) ] ,expression [ ,style ] )
2009年6月13日 - 田勇 - 毕业了 参数
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)
2009年6月13日 - 田勇 - 毕业了 备注

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 中的显式和隐式数据转换。

显式和隐式数据转换
2009年6月13日 - 田勇 - 毕业了 示例

下面的示例将 datetime 值转换为 nvarchar 值:

SELECT OrderDate, CONVERT(nvarchar(10), OrderDate, 101)
FROM Orders
posted on 2010-10-18 18:26  杨琦  阅读(4383)  评论(0编辑  收藏  举报