SQL Convert的用法

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  ), order_date,  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 getdate (),  120  ),/ ' -/ ' ,/ ' / ' ),/ '  / ' ,/ ' / ' ),/ ' :/ ' ,/ ' / '
20040912110608  

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

select   CONVERT ( varchar ( 12 ) ,  getdate (),  112  ) 
20040912  

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

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

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

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

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

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

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

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

select   CONVERT ( varchar ( 12 ) ,  getdate (),  109  
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  ), order_date,  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 getdate (),  120  ),/ ' -/ ' ,/ ' / ' ),/ '  / ' ,/ ' / ' ),/ ' :/ ' ,/ ' / '
20040912110608  

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

select   CONVERT ( varchar ( 12 ) ,  getdate (),  112  ) 
20040912  

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

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

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

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

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

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

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

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

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

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

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

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

09   12   2004   1  

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

select   CONVERT ( varchar ( 12 ) ,  getdate (),  113  ) 
12   09   200
select   CONVERT ( varchar ( 12 ) ,  getdate (),  114  ) 
11 : 06 : 08.177
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值