SQL中Convert方法如何使用
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方法如何使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。