CONVERT 函数 [数据类型转换]
发布时间:2020-12-12 14:45:20 所属栏目:MsSql教程 来源:网络整理
导读:?功能? 返回转换成提供的数据类型的表达式。 语法? CONVERT ?(?data?type,?expression? [ ?,?format-style? ] ?) 参数? data?type????表达式将转换成的数据类型。 expression????要转换的表达式。 format - style????对于将字符串转换为日期或时间数据类型以
?功能?
返回转换成提供的数据类型的表达式。 语法? 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读