微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CONVERT 函数 [数据类型转换]

 功能 
返回转换成提供的数据类型的表达式。

语法 
CONVERT  ( data type, expression  [  , format-style  ]  )

参数 
data type    表达式将转换成的数据类型。

expression    要转换的表达式。

format
- style    对于将字符串转换为日期或时间数据类型以及相反的转换过程,format - style 是描述要使用的日期格式字符串的样式代码。 format - style 参数的值具有下列含义:不含世纪 (yy)  含世纪 (yyyy)  输出  
-    0  或  100   Mmm dd yyyy hh:nn:ss:sss AM(或 PM)  
1    101   mm / dd / yy [ yy ]   
2    102    [ yy ] yy.mm.dd  
3    103   dd / mm / yy [ yy ]   
4    104   dd.mm.yy [ yy ]   
5    105   dd - mm - yy [ yy ]   
6    106   dd Mmm yy [ yy ]   
7    107   Mmm dd, yy [ yy ]   
8    108   hh:nn:ss  
-    9  或  109   Mmm dd yyyy hh:nn:ss:sssAM(或 PM)  
10    110   mm - dd - yy [ yy ]   
11    111    [ yy ] yy / mm / dd  
12    112    [ yy ] yymmdd  
13    113   dd Mmm yyy hh:nn:ss:sss( 24  小时制,欧洲缺省时间  +  毫秒, 4  位数年份)  
14    114   hh:nn:ss:sss( 24  小时制)  
20    120   yyyy - mm - dd hh:nn:ss:sss( 24  小时制,ODBC 规范, 4  位数年份)  
21    121   yyyy - mm - dd hh:nn:ss.sss( 24  小时制,ODBC 规范加毫秒, 4  位数年份)  


如果未提供 format
- style 参数,则使用样式代码  0

有关每种输出符号(如 Mmm)生成的样式的描述,请参见 DATE_FORMAT 选项 
[ compatibility ]

标准和兼容性 
sql
/ 92     供应商扩展。 

sql
/ 99     供应商扩展。 

Sybase    与 Adaptive Server Enterprise 兼容。 

另请参见 
CAST  函数  [ 数据类型转换 ]  
示例 
下列语句说明了格式样式的用法

SELECT   CONVERT CHAR 20  ), order_date,  104  )
FROM  sales_orderorder_date  
16.03 . 2000   
20.03 . 2000   
23.03 . 2000   
25.03 . 2000   

  

SELECT   CONVERT CHAR 20  ),  7  )
FROM  sales_orderorder_date  
Mar 
16 00   
Mar 
20 00   
Mar 
23 00   
Mar 
25 00   

  

下面的语句说明了到整数的转换,并返回值 
5

SELECT   CONVERT integer 5.2  )

CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在
sql Server中 将日期格式化.

sql Server 支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将 
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:mm:ss [ .fff ]  
-   21  或  121  ( * )  ODBC 规范(带毫秒) yyyy - mm - dd hh:mm:ss [ .fff ]  
-   126 ( *** ) ISO8601 yyyy - mm - dd Thh:mm:ss:mmm(不含空格) 
-   130 *  科威特 dd mon yyyy hh:mi:ss:mmmAM 
-   131 *  科威特 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


 

重要  认情况下,sql Server 根据截止年份 
2049  解释两位数字的年份。即,两位数字的年份  49  被解释为  2049 ,而两位数字的年份  50  被解释为  1950 。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用  2030  作为截止年份。sql Server 提供一个配置选项("两位数字的截止年份"),借以更改 sql Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。

 

当从 
smalldatetime  转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从  datetime  或  smalldatetime  值进行转换时,可以通过使用适当的  char  或  varchar  数据类型长度来截断不需要的日期部分。

下表显示了从 
float  或  real  转换为字符数据时的 style 值。

值 输出 
0 认值) 最大为  6  位数。根据需要使用科学记数法。 
1  始终为  8  位值。始终使用科学记数法。 
2  始终为  16  位值。始终使用科学记数法。 



在下表中,左列表示从 
money  或  smallmoney  转换为字符数据时的 style 值。

值 输出 
0 认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如  4235.98 。 
1  小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如  3 , 510.92 。 
2  小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如  4235.9819 。  


使用 
CONVERT

CONVERT  (data_type [ (length) ] , expression  [ , style ] )


select   CONVERT ( varchar getdate (),  120  ) 
2004 - 09 - 12   11 : 06 : 08  

select   replace ( replace ( replace ( CONVERT ( varchar 120  ),\ ' -\ ' ,\ ' \ ' ),\ '  \ ' ,\ ' :\ ' ,\ ' \ '
20040912110608  

select   CONVERT ( varchar ( 12 ) ,  111  ) 
2004 / 09 / 12  

select   CONVERT ( varchar ( 12 ) ,  112  ) 
20040912  

select   CONVERT ( varchar ( 12 ) ,  102  ) 
2004.09 . 12  

select   CONVERT ( varchar ( 12 ) ,  101  ) 
09 / 12 / 2004  

select   CONVERT ( varchar ( 12 ) ,  103  ) 
12 / 09 / 2004  

select   CONVERT ( varchar ( 12 ) ,  104  ) 
12.09 . 2004  

select   CONVERT ( varchar ( 12 ) ,  105  ) 
12 - 09 - 2004  

select   CONVERT ( varchar ( 12 ) ,  106  ) 
12   09   2004  

select   CONVERT ( varchar ( 12 ) ,  107  ) 
09   12 2004  

select   CONVERT ( varchar ( 12 ) ,  108  ) 
11 : 06 : 08  

select   CONVERT ( varchar ( 12 ) ,  109  ) 
09   12   2004   1  

select   CONVERT ( varchar ( 12 ) ,  110  ) 
09 - 12 - 2004  

select   CONVERT ( varchar ( 12 ) ,  113  ) 
12   09   2004   1  

select   CONVERT ( varchar ( 12 ) ,  114  ) 
11 : 06 : 08.177

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐