SQL中Convert方法如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

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

语法

CONVERT(datatype,expression[,format-style])

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

expression要转换的表达式。

format

-style对于将字符串转换为日期或时间数据类型以及相反的转换过程,format-style是描述要使用的日期格式字符串的样式代码。format-style参数的值具有下列含义:不含世纪(yy)含世纪(yyyy)输出
-0或100Mmmddyyyyhh:nn:ss:sssAM(或PM)
1101mm/dd/yy[yy]
2102[yy]yy.mm.dd
3103dd/mm/yy[yy]
4104dd.mm.yy[yy]
5105dd-mm-yy[yy]
6106ddMmmyy[yy]
7107Mmmdd,yy[yy]
8108hh:nn:ss
-9或109Mmmddyyyyhh:nn:ss:sssAM(或PM)
10110mm-dd-yy[yy]
11111[yy]yy/mm/dd
12112[yy]yymmdd
13113ddMmmyyyhh:nn:ss:sss(24小时制,欧洲缺省时间+毫秒,4位数年份)
14114hh:nn:ss:sss(24小时制)
20120yyyy-mm-ddhh:nn:ss:sss(24小时制,ODBC规范,4位数年份)
21121yyyy-mm-ddhh:nn:ss.sss(24小时制,ODBC规范加毫秒,4位数年份)

如果未提供format

-style参数,则使用样式代码0。

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

[compatibility]。

标准和兼容性
SQL

/92供应商扩展。

SQL

/99供应商扩展。

Sybase与AdaptiveServerEnterprise兼容。

另请参见

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

SELECTCONVERT(CHAR(20),order_date,104)
FROMsales_orderorder_date
16.03.2000
20.03.2000
23.03.2000
25.03.2000

SELECTCONVERT(CHAR(20),order_date,7)
FROMsales_orderorder_date
Mar16,00
Mar20,00
Mar23,00
Mar25,00

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

5:

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

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

在表中,左侧的两列表示将

datetime或smalldatetime转换为字符数据的style值。给style值加100,可获得包括世纪数位的四位年份(yyyy)。

不带世纪数位(yy)带世纪数位(yyyy)
标准
输入

/输出**
-0或100(*)默认值monddyyyyhh:miAM(或PM)
1101美国mm/dd/yyyy
2102ANSIyy.mm.dd
3103英国/法国dd/mm/yy
4104德国dd.mm.yy
5105意大利dd-mm-yy
6106-ddmonyy
7107-mondd,yy
8108-hh:mm:ss
-9或109(*)默认值+毫秒monddyyyyhh:mi:ss:mmmAM(或PM)
10110美国mm-dd-yy
11111日本yy/mm/dd
12112ISOyymmdd
-13或113(*)欧洲默认值+毫秒ddmonyyyyhh:mm:ss:mmm(24h)
14114-hh:mi:ss:mmm(24h)
-20或120(*)ODBC规范yyyy-mm-ddhh:mm:ss[.fff]
-21或121(*)ODBC规范(带毫秒)yyyy-mm-ddhh:mm:ss[.fff]
-126(***)ISO8601yyyy-mm-ddThh:mm:ss:mmm(不含空格)
-130*科威特ddmonyyyyhh:mi:ss:mmmAM
-131*科威特dd/mm/yyhh:mi:ss:mmmAM

*默认值(style0或100、9或109、13或113、20或120、21或121)始终返回世纪数位(yyyy)。
**当转换为datetime时输入;当转换为字符数据时输出。
***专门用于XML。对于从datetime或smalldatetime到character数据的转换,输出格式如表中所示。对于从float、money或smallmoney到character数据的转换,输出等同于style2。对于从real到character数据的转换,输出等同于style1。

重要默认情况下,SQLServer根据截止年份

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

当从

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])

selectCONVERT(varchar,getdate(),120)
2004-09-1211:06:08

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

selectCONVERT(varchar(12),getdate(),111)
2004/09/12

selectCONVERT(varchar(12),getdate(),112)
20040912

selectCONVERT(varchar(12),getdate(),102)
2004.09.12

selectCONVERT(varchar(12),getdate(),101)
09/12/2004

selectCONVERT(varchar(12),getdate(),103)
12/09/2004

selectCONVERT(varchar(12),getdate(),104)
12.09.2004

selectCONVERT(varchar(12),getdate(),105)
12-09-2004

selectCONVERT(varchar(12),getdate(),106)
12092004

selectCONVERT(varchar(12),getdate(),107)
0912,2004

selectCONVERT(varchar(12),getdate(),108)
11:06:08

selectCONVERT(varchar(12),getdate(),109)
091220041

selectCONVERT(varchar(12),getdate(),110)
09-12-2004

selectCONVERT(varchar(12),getdate(),113)
120920041

selectCONVERT(varchar(12),getdate(),114)
11:06:08.177

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