SQL中Convert方法如何使用

73次阅读
没有评论

共计 4194 个字符,预计需要花费 11 分钟才能阅读完成。

SQL 中 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

关于 SQL 中 Convert 方法如何使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计4194字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)