CAST 和 CONVERT转换函数(MSDN参考)

合集下载

SQL中CONVERT及CAST转化函数的用法

SQL中CONVERT及CAST转化函数的用法
------------------------------------------------------------------------------------------------------------
8 | 108 | hh:mm:ss
------------------------------------------------------------------------------------------------------------
3 | 103 英法 | dd/mm/yy
------------------------------------------------------------------------------------------------------------
21 | 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
------------------------------------------------------------------------------------------------------------

converter函数

converter函数

converter函数Converter函数在编程中,我们经常需要将一种数据类型转换为另一种数据类型。

这时,Converter函数就派上用场了。

Converter函数是一种用于数据类型转换的函数,它可以将一种数据类型转换为另一种数据类型。

在本文中,我们将按照数据类型的不同,分别介绍Converter函数的使用方法。

1. 字符串转换在字符串转换中,Converter函数可以将字符串转换为数字、日期等其他数据类型。

例如,我们可以使用Converter函数将字符串“123”转换为数字123,或将字符串“2021-01-01”转换为日期类型的数据。

在C#中,我们可以使用Convert类中的各种方法来进行字符串转换。

例如,使用Convert.ToInt32方法可以将字符串转换为整数类型的数据,使用Convert.ToDateTime方法可以将字符串转换为日期类型的数据。

2. 数字转换在数字转换中,Converter函数可以将数字转换为字符串、日期等其他数据类型。

例如,我们可以使用Converter函数将数字123转换为字符串“123”,或将数字123转换为日期类型的数据。

在C#中,我们可以使用ToString方法将数字转换为字符串类型的数据。

例如,使用int类型的ToString方法可以将整数类型的数据转换为字符串类型的数据。

3. 日期转换在日期转换中,Converter函数可以将日期转换为字符串、数字等其他数据类型。

例如,我们可以使用Converter函数将日期“2021-01-01”转换为字符串类型的数据,或将日期“2021-01-01”转换为数字类型的数据。

在C#中,我们可以使用ToString方法将日期转换为字符串类型的数据。

例如,使用DateTime类型的ToString方法可以将日期类型的数据转换为字符串类型的数据。

4. 其他数据类型转换除了字符串、数字和日期类型的数据,Converter函数还可以将其他数据类型进行转换。

Sql Server 2012 转换函数的比较(Cast、Convert和Parse)

Sql Server 2012 转换函数的比较(Cast、Convert和Parse)

Cast、Convert 和 Parse 都是 Sql Server 2012 中的内置转换函数,其作用是:一种数据类型转换为另一种数据类型。

其中前两者的差别较小,但 Parse 为 Sql Server 2012 新增函数,也是最近在分析 Sql Server 2012 新特性的时间,才有想把这3个函数拿出来进行比较分析的想法语法结构:1. Cast语法结构:CAST ( expression AS data_type [ ( length ) ] )2. Convert语法结构:CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 3. Parse语法结构:PARSE ( string_value AS data_type [ USING culture ] )其中,Parse 为 Sql Server 的新特性 expression 必须要为被转换类型的字符串形式性能分析:总结:1. Convert 和 Cast 的区别CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性。

CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST 的函数能更容易的被其它数据库软件使用),但功能相对弱一些。

不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需要使用CAST2. Convert 和 Parse 的区别两者除了语法的区别,就是功能上面的区别,Convert 功能更强大,Parse 则为 Sql Server 2012 新增的功能,同时功能弱小很多的,只能将字符串转换为数字类型或者日期类型,因为数字类型或日期类型长度都很小的,所以Parse 所带来的性能几乎不可能有大的改变的,之后我也做了大量的比较,发现Parse 是在绝大多数情况下都是可以替代的3. 综合比较a. 如果是做针对 Sql Server 的做开发,建议只用 Convert 方法b. 如果考虑语句跨平台,则尽量用 Cast,如 SQL 语句既能在 Sql Server 上执行,又能在 MySql 上面执行c. Parse 在 Sql Server 2012 中就是一个鸡肋,经过1 下午的实战研究和翻阅MSDN,都没有找到它的优势,如果比语法,Cast 的语法结构和它一样,如果比功能,又太弱小,完全不能和Cast 和 Convert 做比较,所以,您就把 Parse 忘记掉吧性能分析所做的实验:1. Convert 和 Parse 转换为字符串的比较复制代码代码如下:DBCC FreeProcCacheset statistics profile onselect top 1 parse(name as bigint) from test_Parseselect top 1 convert(bigint,name) from test_Parse其中 name 为 nvarchar(1000) 的一个一段,值为:1231238912378912128执行过之后,会发现,两者的执行计划完全相同,无论是对 CPU 的消耗,还是对 IO的消耗,没有任何性能差别2. Money 和 DateTime 类型的转换比较复制代码代码如下:-- DateTimeDBCC FreeProcCachedeclare @date varchar(100) = '2012/07/19 14:57:09.760'select CONVERT(datetime,@date) as dateselect Parse(@date as datetime using 'zh-CN') as date--MoneySELECT PARSE('€345,98' AS money USING 'de-DE') AS ResultSelect Convert(money,'€345,98',1) AS Result3. Parse 的专利,字符型日期到 datetime 的转换复制代码代码如下:SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS ResultSELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'zh-CN') AS Result-- Cast 和 Convert 对这种类型的字符串都是不支持的--SELECT cast('Monday, 13 December 2010' AS datetime2) AS Result--SELECT Convert(datetime,'Monday, 13 December 2010') AS Result在性能方面同样没什么区别,但是比较功能时,Parse 却要比 Convert 错太多严重怀疑, Parse 本人并没有找到太多的优势和应用场景,或者由于本人才疏学浅,找不到更好的,有懂得,请赐教。

SQLServer中T-SQL数据类型转换详解

SQLServer中T-SQL数据类型转换详解

SQLServer中T-SQL数据类型转换详解常⽤的转换函数是 cast 和 convert,⽤于把表达式得出的值的类型转换成另⼀个数据类型,如果转换失败,该函数抛出错误,导致整个事务回滚。

在SQL Server 2012版本中,新增两个容错的转换函数:try_cast 和 try_convert,如果转换操作失败,该函数返回null,不会导致整个事务失败,事务继续执⾏下去。

注意:对于SQL Server显式定义的不合法转换,try_cast 和 try_convert 会失败,抛出错误信息:Explicit conversion from data type int to date is not allowed.select try_cast(1 as date)转换函数是parse 和 try_parse,只⽤于把字符类型转换为 date/time 和数字类型,在解析字符时会产⽣⼀定的性能消耗。

⼀,时间类型转换在把⽇期/时间类型转换成字符串时,常⽤的转换函数是Convert和Cast,convert函数能够在⼀定程度上显式控制⽇期/时间的显⽰格式,⽽cast对⽇期/时间类型的显⽰格式,⽆法显式控制,我推荐使⽤另⼀个功能更强⼤的函数:FORMAT,该函数⽤于把⽇期时间类型,按照指定的格式转换成字符串,也可以把数值按照特定的格式输出。

1,常⽤的转换函数convert 常⽤于转换date,datetime 等⽇期/时间类型,通过指定style参数,能够控制数据显⽰的格式CAST ( expression AS data_type [ ( length ) ] )CONVERT ( data_type [ ( length ) ] , expression [ , style ] )常⽤的style及其显⽰格式如下:101 mm/dd/yyyy 110 mm-dd-yyyy 111 yyyy/mm/dd 112 yyyymmdd 120 yyyy-mm-dd hh:mm:ss 121 yyyy-mm-ddhh:mm:sssssssCONVERT函数的style是数字,记忆起来⽐较困难,只能按照系统定义的格式来显⽰,不够灵活。

CONVERT函数[数据类型转换]

CONVERT函数[数据类型转换]

CONVE‎R T 函数 [数据类型转‎换]---------------------------------------------------------------------功能返回转换成‎提供的数据‎类型的表达‎式。

语法CONVE‎R T ( data type, expre‎s sion‎[ , forma‎t-style‎] )参数data type 表达式将转‎换成的数据‎类型。

expre‎s sion‎要转换的表‎达式。

forma‎t-style‎对于将字符‎串转换为日‎期或时间数‎据类型以及‎相反的转换‎过程,forma‎t-style‎是描述要使‎用的日期格‎式字符串的‎样式代码。

forma‎t-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.dd3 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/dd12 112 [yy]yymmd‎d13 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 位数年份)如果未提供‎forma‎t-style‎参数,则使用样式‎代码 0。

SQL语句转换格式函数Cast、Convert

SQL语句转换格式函数Cast、Convert

SQL语句转换格式函数Cast、Convert CAST和CONVERT都经常被使⽤。

特别提取出来作为⼀篇⽂章,⽅便查找。

CAST、CONVERT都可以执⾏数据类型转换。

在⼤部分情况下,两者执⾏同样的功能,不同的是CONVERT还提供⼀些特别的⽇期格式转换,⽽CAST没有这个功能。

既然CONVERT包括了CAST的所有功能,⽽且CONVERT还能进⾏⽇期转换,那么为什么需要使⽤CAST呢?实际上,这是为了ANSI/ISO兼容。

CAST是ANSI兼容的,⽽CONVERT则不是。

语法: CAST (expression AS data_type [ (length ) ]) CONVERT (data_type [ ( length ) ] , expression [ , style ]) ⽰例: SELECT 'AB' + 1 --此语句报错,在将 varchar 值 'AB' 转换成数据类型 int 时失败。

SELECT 'AB' + CAST(1 AS varchar) --输出 AB1 SELECT 'AB' + CONVERT(varchar,1) --输出 AB1 CAST和CONVERT都能转换时间: SELECT CONVERT(DateTime,'2011-07-11') --输出 2011-07-11 00:00:00.000 SELECT CAST('2011-07-11' AS DateTime) --输出 2011-07-11 00:00:00.000 但是时间转字符串,CAST没有CONVERT这么多花样: SELECT CONVERT(varchar,GETDATE(),5) --输出 01-07-13 SELECT CONVERT(varchar,GETDATE(),111) --输出 2013/07/01 SELECT CONVERT(varchar,GETDATE(),1) --输出 07/01/13 SELECT CAST(GETDATE() AS varchar) --输出 07 1 2013 9:56PM。

mysql查询语句转换字段的编码规则

mysql查询语句转换字段的编码规则

mysql查询语句转换字段的编码规则在MySQL数据库中,查询语句可以通过使用转换函数将字段的编码规则进行转换。

这对于在不同的编码规则之间进行数据转换或者在不同编码规则的字段之间进行比较非常有用。

在MySQL中,常用的转换函数包括CONVERT()和CAST()函数。

这两个函数都可以用来转换字段的编码规则。

使用CONVERT()函数进行字段编码规则转换的基本语法如下:```CONVERT(expression USING transcoding)```- expression是要转换编码规则的字段或表达式。

- transcoding是要转换到的目标编码规则。

使用CAST()函数进行字段编码规则转换的基本语法如下:```CAST(expression AS type)```- expression是要转换编码规则的字段或表达式。

- type是要转换到的目标编码规则的数据类型。

下面是一个示例,展示如何使用转换函数转换字段的编码规则:```sqlSELECT CONVERT(name USING utf8) AS converted_nameFROM employees```上述示例中,我们将名字字段的编码规则从默认转换为utf8。

在实际的查询过程中,我们可以根据需要使用不同的编码规则进行转换。

通过处理和转换字段的编码规则,我们可以更准确地处理不同编码规则的数据,确保数据的正确性和一致性。

总结:MySQL查询语句中,我们可以使用转换函数如CONVERT()和CAST()来转换字段的编码规则。

通过转换字段的编码规则,我们可以在不同编码规则之间进行数据转换和比较。

这对于处理不同编码规则的数据非常有用。

mysql类型转换函数convert与cast的用法

mysql类型转换函数convert与cast的用法

mysql类型转换函数convert与cast的⽤法简单介绍下mysql数据库中⽤于类型转换的⼆个函数,convert与cast函数,有需要的朋友参考下。

⾸先,convert函数字符集转换 : CONVERT(xxx USING gb2312)类型转换和SQL Server⼀样,不过类型参数上有不同:CAST(xxx AS 类型), CONVERT(xxx,类型),类型必须⽤下列的类型:可⽤的类型 ⼆进制,同带binary前缀的效果 : BINARY字符型,可带参数 : CHAR()⽇期 : DATE时间: TIME⽇期时间型 : DATETIME: DECIMAL整数 : SIGNED⽆符号整数 : UNSIGNEDMySQL CAST与CONVERT 函数的⽤法MySQL 的CAST()和CONVERT()函数可⽤来获取⼀个类型的值,并产⽣另⼀个类型的值。

两者具体的语法如下:CAST(value as type);CONVERT(value, type);就是CAST(xxx AS 类型), CONVERT(xxx,类型)。

可以转换的类型是有限制的。

这个类型可以是以下值其中的⼀个:⼆进制,同带binary前缀的效果 : BINARY字符型,可带参数 : CHAR()⽇期 : DATE时间: TIME⽇期时间型 : DATETIME浮点数 : DECIMAL整数 : SIGNED⽆符号整数 : UNSIGNED下⾯举⼏个例⼦:例⼀复制代码代码⽰例:> SELECT CONVERT('23',SIGNED);+----------------------+| CONVERT('23',SIGNED) |+----------------------+| 23 |+----------------------+1 row in set例⼆复制代码代码⽰例:mysql> SELECT CAST('125e342.83' AS signed);+------------------------------+| CAST('125e342.83' AS signed) |+------------------------------+| 125 |+------------------------------+1 row in set例三复制代码代码⽰例:mysql> SELECT CAST('3.35' AS signed);+------------------------+| CAST('3.35' AS signed) |+------------------------+| 3 |+------------------------+1 row in set像上⾯例⼦⼀样,将varchar 转为int ⽤ cast(a as signed),其中a为varchar类型的字符串。

MySQL数据类型转换与字段操作指南

MySQL数据类型转换与字段操作指南

MySQL数据类型转换与字段操作指南数据库是现代应用开发中不可或缺的一部分,而MySQL作为最常用的开源关系型数据库管理系统之一,在众多应用场景中广泛应用。

MySQL提供了丰富的数据类型,在进行数据存储和操作时,正确的数据类型转换和字段操作非常重要。

本文将为您详细介绍MySQL数据类型转换和字段操作的指南,帮助您更好地使用和理解MySQL。

一、数据类型转换在数据库中,数据类型决定了数据的存储方式和所能包含的数据范围。

当我们需要在不同的数据类型之间进行转换时,需要通过一些函数来完成。

下面是一些常见的数据类型转换函数。

1. CONVERT()函数CONVERT()函数用于将一个数据类型转换为另一个数据类型。

它的语法如下:CONVERT(expression, data_type)其中,expression表示需要进行转换的表达式,data_type表示要转换的目标数据类型。

例如,我们可以将一个字符串类型转换为整数类型:SELECT CONVERT('123', SIGNED);2. CAST()函数CAST()函数也可以用于数据类型转换。

它的语法如下:CAST(expression AS data_type)其中,expression表示需要进行转换的表达式,data_type表示要转换的目标数据类型。

例如,将一个浮点数转换为整数类型:SELECT CAST(3.14 AS SIGNED);3. IFNULL()函数IFNULL()函数用于判断某个字段是否为NULL,如果是NULL,则返回指定的值,否则返回字段本身。

它的语法如下:IFNULL(expression, value)其中,expression表示需要判断的字段或表达式,value表示如果字段为NULL时要返回的值。

例如,如果某个字段可能为NULL,我们可以使用IFNULL()函数来指定默认值:SELECT IFNULL(column_name, 'N/A') FROM table_name;二、字段操作除了数据转换外,我们还需要对数据库中的字段进行操作,包括添加、修改和删除字段等。

db2convert函数用法

db2convert函数用法

db2convert函数用法CAST表达式用来转换类型使用SELECT CAST(CURRENT TIME AS CHAR(8))FROM SYSIBM.SYSDUMMY1SELECT CAST(CURRENT TIME AS CHAR(8) ) FROM SYSIBM.SYSDUMMY11、转换为字符串类型:CHAR函数语法:CHAR(ARG)CHAR函数返回日期时间型、字符串、整数、十进制或双精度浮点数的字符串表示。

eg:SELECT CHAR(SALARY)FROM TESTeg:SELECT CHAR(SALARY) FROM TESTCHR函数语法:CHR(ARG)CHR函数返回由参数指定的ASCII码的字符,参数可以是INTEGER或SMALLINT。

eg:SELECT CHR(167)FROM TESTeg:SELECT CHR(167) FROM TESTVARCHAR函数语法:VARCHAR(ARG,LENGTH)VARCHAR函数返回字符串、日期型、图形串的可变长度的字符串表示。

eg:SELECT VARCHAR(NAME,50)FROM TEST--50为截取长度,如果name字符串的长度大于50,则返回“SQL0445W值已被截断。

SQLSTATE=01004”。

eg:SELECT VARCHAR(NAME,50) FROM TEST--50为截取长度,如果name字符串的长度大于50,则返回“SQL0445W 值已被截断。

SQLSTATE=01004”。

DIGITS函数语法:DIGITS()DIGITS函数返回SMALLINT、INTEGER、BIGIT或者DECIMAL参数的字符串值。

eg:SELECT DIGITS(ID)FROM TESTeg:SELECT DIGITS(ID) FROM TEST2、转换为数字类型:DOUBLE、FLOAT函数语法:DOUBLE()、FLOAT()DOUBLE、FLOAT函数如果参数是一个数字表达式,返回与其对应的浮点数,否则返回错误代码。

convert函数c语言

convert函数c语言

convert函数c语言在C语言中,convert函数(即“转换”函数)被广泛使用,其主要功能是将一个数据类型转换为另一个数据类型。

例如,将整型转换为浮点型或将字符型转换为整型等。

这篇文章将详细介绍convert函数的使用方法。

第一步:了解数据类型在使用convert函数之前,我们需要了解不同数据类型之间的转换规则。

C语言中有以下几种基本数据类型:- 整型(int)- 浮点型(float)- 双精度浮点型(double)- 字符型(char)在不同数据类型之间进行转换时,需要注意以下几点:- 向下转型(如double转为float或float转为int)时可能会丢失精度。

- 在转换char类型时,会将字符的ASCII码对应的整数类型返回。

- 在进行强制类型转换时,需要注意类型的兼容性。

第二步:使用type casting操作符在C语言中,使用type casting操作符进行转换。

typecasting操作符可以将一个数据类型强制转换为另一个数据类型。

例如,将一个整型变量强制转换为一个浮点数。

type casting操作符的基本语法如下:(type) expression其中,type表示要转换成的类型,expression表示要转换的值。

在使用type casting操作符时,需要将要转换的值用括号括起来。

例如,将一个浮点数强制转换为一个整型变量:float num1 = 3.1415926;int num2;num2 = (int)num1;在上述代码中,我们将num1强制转换为int类型,并将结果赋值给num2。

注意,这种转换方式会将浮点数取整,丢失小数部分的数值。

第三步:使用类型转换函数除了使用type casting操作符,我们还可以使用C语言的类型转换函数。

这些函数可以将一种数据类型转换为另一种数据类型,且通常比type casting操作符更为灵活和安全。

在C语言中,常用的类型转换函数有以下几种:- atoi():将字符串转换为整型。

cast coalesce函数

cast coalesce函数

cast coalesce函数Cast Coalesce函数是一种在SQL语言中常用的函数,它可以将一个数据类型转换为另一个数据类型,并且可以在多个表达式中选择第一个非空的表达式。

在本文中,我们将详细介绍Cast Coalesce函数的使用方法和注意事项。

Cast函数的使用方法Cast函数可以将一个数据类型转换为另一个数据类型,常用的数据类型包括整数、浮点数、字符串等。

Cast函数的语法如下:CAST(expression AS data_type)其中,expression是要转换的表达式,data_type是要转换成的数据类型。

例如,将字符串转换为整数可以使用以下语句:SELECT CAST('123' AS INT);这将返回整数123。

Coalesce函数的使用方法Coalesce函数可以在多个表达式中选择第一个非空的表达式。

如果所有表达式都为空,则返回NULL。

Coalesce函数的语法如下:COALESCE(expression1, expression2, ..., expressionN)其中,expression1到expressionN是要选择的表达式。

例如,选择第一个非空的表达式可以使用以下语句:SELECT COALESCE(NULL, 1, 2);这将返回整数1,因为第一个表达式为空,选择了第二个表达式。

Cast Coalesce函数的使用方法Cast Coalesce函数可以将一个数据类型转换为另一个数据类型,并且可以在多个表达式中选择第一个非空的表达式。

Cast Coalesce函数的语法如下:CAST(COALESCE(expression1, expression2, ..., expressionN) AS data_type)其中,expression1到expressionN是要选择的表达式,data_type是要转换成的数据类型。

例如,将字符串转换为整数并选择第一个非空的表达式可以使用以下语句:SELECT CAST(COALESCE('123', '456', '789') AS INT);这将返回整数123,因为第一个表达式非空。

SQL中的cast和convert的用法和区别以及时间转换

SQL中的cast和convert的用法和区别以及时间转换

SQL中的cast和convert的⽤法和区别以及时间转换 在 mysql 操作中我们经常需要对数据进⾏类型转换,此时我们应该使⽤的是cast()或convert()。

两者的对⽐: 相同点:都是进⾏数据类型转换,实现的功能基本等同。

不同点:两者的语法不同,cast(value as type) 、 convert(value,type)⼀、语法1、使⽤ CAST:CAST ( expression AS data_type )2、使⽤ CONVERT:CONVERT (data_type[(length)], expression [, style])3、参数说明:(1)expression:是任何有效的表达式。

(2)data_type:⽬标系统所提供的数据类型,包括 bigint 和 sql_variant。

不能使⽤⽤户定义的数据类型。

(3)length:nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

(4)style:⽇期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

⼆、cast和convert的代码⽰例select CAST('123'as int) -- 123select CONVERT(int, '123') -- 123select CAST(123.4as int) -- 123select CONVERT(int, 123.4) -- 123select CAST('123.4'as int)select CONVERT(int, '123.4')-- Conversion failed when converting the varchar value '123.4' to data type int.select CAST('123.4'as decimal) -- 123select CONVERT(decimal, '123.4') -- 123select CAST('123.4'as decimal(9,2)) -- 123.40select CONVERT(decimal(9,2), '123.4') -- 123.40declare@Num moneyset@Num=1234.56select CONVERT(varchar(20), @Num, 0) -- 1234.56select CONVERT(varchar(20), @Num, 1) -- 1,234.56select CONVERT(varchar(20), @Num, 2) -- 1234.5600三、SQL中CAST和CONVERT⽤在时间转换上的区别 cast 和 convert 都是⽤来转化数据类型的,功能上是差不多的。

转换串函数

转换串函数
SQLServer基础教程
转换串函数
1、CAST(expression, AS date_type)
将表达式值转换为指定的数据类 型。例如: SELECT CAST('2002-5-27' AS datetime)
返回结果:2002-05-27 00:00:00.000
语句 SELECT CAST(GETDATE() AS char) 返回结果为:12 25 2003 12:47PM 语句
expression[,style]) 与CAST函数相似,只是CONVERT
中可以设定数据类型的长度和格式。 表6-2列出日期型与字符型转换时 style的取值含义。 例如语句
SELECT CONVERT(char, GETDATE(),101) 返回结果:12/25/2003
style取值 (无世纪值 )
3、CASE 函数 CASE函数有两种即简单CASE
函数和搜索CASE函数,其函数格式 分别为: CASE input_expression
WHEN when_en […n] [ELSE else_result_expression] END 和 CASE
SELECT CAST('123' AS real) 返回结果为:123.0
再如,车辆表中启用年代字段的 数据由两部分组成如‘89_2’,其中 ‘89’表示89年,‘2’表示第二季度。
现 需将‘89_2’形式用‘89年’表示,
下面
SELECT 车牌号, 类别,‘启用年 '=CAST(LEFT(启用年代, 2) AS char(2))+'年' FROM cl 2、CONVERT(date_type[(length)],

6.3.3 数据类型转换函数_MySQL数据库基础与实例教程_[共2页]

6.3.3 数据类型转换函数_MySQL数据库基础与实例教程_[共2页]

180 执行结果如图6-70所示。

select reverse('中国China');图6-69 字符串比较函数与字符序的设置图6-70 字符串逆序函数的调用6.3.3 数据类型转换函数最为常用的数据类型转换函数是convert(x,type)与cast(x as type)函数。

另外,MySQL还提供了“十六进制字符串”转换为“十六进制数”的函数unhex(x)。

1.convert()函数convert()函数有两种用法格式。

convert(x using charset)函数返回x的charset字符集数据(刚刚讲过,这里不再赘述)。

convert()函数还有另外一种语法格式:convert(x,type),可以实现数据类型的转换。

convert(x,type)函数以type数据类型返回x数据(注意:x的数据类型没有变化)。

除此以外,cast(x as type)函数也实现了与convert(x,type)函数相同的功能。

例如,下面的select语句的执行结果如图6-71所示。

set @s1 = '国';set @s2 = convert(@s1,binary);select @s1,charset(@s1),@s2,charset(@s2);2.unhex(x)函数unhex(x)函数负责将十六进制字符串x转换为十六进制的数值。

例如,下面的select语句的执行结果如图6-72所示。

select 0xD6D0B9FA4368696E61,'D6D0B9FA4368696E61',unhex('D6D0B9FA4368696E61');图6-71 数据类型转换函数的调用图6-72 十六进制字符串与转换为十六进制数的函数6.3.4 条件控制函数条件控制函数的功能是根据条件表达式的值返回不同的值,MySQL中常用的条件控制函数有if()、ifnull()以及case函数。

convert 函数

convert 函数

convert 函数Convert数是一种常见的数学函数,它是用来将数据从一种格式转换到另一种格式的工具。

它可以用来将数据从一种常用的基础格式(比如数字和字符)转换成另外一种特定表达方式(比如格式化的周期表)。

广泛地说,Convert数是一个具有强大功能的工具,它可以帮助开发人员或者用户方便快捷地将任何一个格式的数据转换到另一种格式,从而使其更容易处理。

在数学计算中,Convert数是常用的编程语言所提供的功能之一。

它可以实现通过数学表达式和函数将特定格式的数据转换成另一种格式。

例如,如果你想要将要求加入空字符串的字符串转换为实际的数字类型,你可以使用convert函数将它转换为double类型。

此外,在计算表达式的过程中,你也可以使用 Convert数来将特定的表达式转换为其他格式,比如十进制、八进制或十六进制的数字。

另外,在计算机科学中,Convert数也可以用于不同 programmed 言之间的数据转换,它可以将一种格式的数据转换为另一种格式,从而使它们在不同语言中表示出来。

例如,在Java语言和C语言之间可以使用 Convert数将Java语言数据转换成C语言的数据结构,这是一个非常有用的功能,它可以帮助开发人员可以更加方便快捷地实现数据交换。

另外,Convert数还可以用于实现文件之间的格式转换,比如将一种文件保存为另一种格式。

这也是一个非常有用的功能,很多时候开发人员需要在不同的系统中使用不同格式的文件来存储或处理一些数据,这就需要通过Convert数将一种文件转换为另一种文件,以便能够在不同的系统中使用。

总而言之,Convert数是一种非常有用的工具,它可以用来转换不同格式的数据与文件,从而使不同的系统之间能够对数据和文件进行交换,从而帮助开发人员和用户更加高效地完成数据处理工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL Server 2005 联机丛书CAST 和 CONVERT (Transact-SQL)请参阅: : : : : : :将一种数据类型的表达式显式转换为另一种数据类型的表达式。

CAST 和 CONVERT 提供相似的功能。

Transact-SQL 语法约定语法Syntax for CAST:CAST ( expression AS data_type [ (length ) ])Syntax for CONVERT:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )备注隐式转换指那些没有指定 CAST 或 CONVERT 函数的转换。

显式转换指那些需要指定CAST 或 CONVERT 函数的转换。

以下图例显示了可对 SQL Server 2005 系统提供的数据类型执行的所有显式和隐式数据类型转换。

其中包括 xml、bigint 和sql_variant。

不存在对 sql_variant 数据类型的赋值进行的隐式转换,但是存在转换为 sql_variant 的隐式转换。

注意:因为 Unicode 数据始终使用偶数个字节,所以在 binary 或 varbinary 与支持Unicode 的数据类型之间进行转换时会使用警告。

例如,以下转换不返回十六进制值41;而是返回 4100:SELECT CAST(CAST(0x41 AS nvarchar) AS varbinary)大值数据类型大值数据类型表现出与小值数据类型相同的隐式和显式转换行为,特别是 varchar、nvarchar 和 varbinary 数据类型。

但是,应该考虑以下原则:从 image 到 varbinary(max) 的转换与反向转换是隐式转换,text 与varchar(max)、ntext、nvarchar(max) 之间的转换也是隐式转换。

∙从大值数据类型(如 varchar(max))到小值数据类型(如 varchar)的转换是隐式转换,但如果大值相对于指定长度的小值数据类型显得太大,则产生截断。

∙从 varchar、nvarchar 或 varbinary 到其相应的大值数据类型的转换都是隐式执行的。

∙从 sql_variant 数据类型到大值数据类型的转换是显式转换。

∙大值数据类型不能转换为 sql_variant 数据类型。

有关转换 Microsoft .NET Framework 公共语言运行时 (CLR) 用户定义类型的信息,请参阅对用户定义类型执行操作。

有关从 xml 数据类型进行转换的详细信息,请参阅生成 XML 实例。

xml 数据类型当您将 xml 数据类型显式或隐式转换为字符串或二进制数据类型时,xml 数据类型的内容将根据一组规则进行序列化。

有关这些规则的信息,请参阅 XML 数据的序列化。

有关如何从 XML 转换为 CLR 用户定义类型的信息,请参阅对用户定义类型执行操作。

有关从其他数据类型转换为 xml 数据类型的信息,请参阅生成 XML 实例。

文本和图像数据类型不支持对 text 和 image 数据类型进行自动数据类型转换。

可将 text 数据显式转换为字符数据,将 image 数据转换为 binary 或 varbinary,但最大长度是 8000 字节。

如果试图进行不正确的转换,如将包含字母的字符表达式转换为 int,则 SQL Server将返回错误消息。

输出的排序规则如果 CAST 或 CONVERT 的输出是字符串,并且输入也是字符串,则输出将与输入具有相同的排序规则和排序规则标签。

如果输入不是字符串,则输出采用数据库的默认排序规则以及强制默认的排序规则标签。

有关详细信息,请参阅排序规则优先顺序(Transact-SQL)。

若要为输出分配不同的排序规则,请将 COLLATE 子句应用于 CAST 或 CONVERT 函数的结果表达式。

例如:SELECT CAST('abc' AS varchar(5)) COLLATE French_CS_AS截断结果和舍入结果将字符或二进制表达式(char、nchar、nvarchar、varchar、binary 或varbinary)转换为其他数据类型的表达式时,可截断数据,仅显示部分数据,或返回错误(因为结果太短而无法显示)。

除了下表显示的转换,其他到 char、varchar、nchar、nvarchar、binary 和 varbinary 的转换都将被截断。

被转换的数据类型转换为的数据类型结果int、smallint 或 tinyint char *varchar *nchar Envarchar E money、smallmoney、numeric、decimal、float 或 real char Evarchar Enchar Envarchar E * = 结果长度太短而无法显示。

E = 因为结果长度太短无法显示而返回错误。

SQL Server 仅保证往返转换(即从原始数据类型进行转换后又返回原始数据类型的转换)在各版本间产生相同值。

以下示例显示的即是这样的往返转换:复制代码DECLARE @myval decimal (5, 2)SET @myval = 193.57SELECT CAST(CAST(@myval AS varbinary(20)) AS decimal(10,5))-- Or, using CONVERTSELECT CONVERT(decimal(10,5), CONVERT(varbinary(20), @myval))注意:不要尝试构造 binary 值然后将其转换为数值数据类型类别的一种数据类型。

SQL Server 不能保证 decimal 或 numeric 数据类型到 binary 的转换结果在 SQL Server 的各个版本中都相同。

以下示例显示了由于太小而无法显示的结果表达式。

复制代码USE AdventureWorks;GOSELECT c.FirstName, stName, SUBSTRING(c.Title, 1, 25) AS Title, CAST(e.SickLeaveHours AS char(1)) AS 'Sick Leave'FROM HumanResources.Employee e JOIN Person.Contact c ONe.EmployeeID = c. ContactIDWHERE NOT EmployeeID >5下面是结果集:复制代码FirstName LastName Title SickLeave--------- --------- ------------------- ----------- Gustavo Achong Mr. *Catherine Abel Ms. *Kim Abercrombie Ms. *Humberto Acevedo Sr. *Pilar Ackerman Sra. *(5 row(s) affected)转换小数位数不同的数据类型时,结果值有时被截断,有时被舍入。

下表显示了此行为。

被转换的数据类型转换为的数据类型行为numeric numeric Round numeric int 截断numeric money Round money int Round money numeric Roundfloat int 截断float numeric Roundfloat datetime Round datetime int 舍入例如,以下转换的结果为10:SELECT CAST(10.6496 AS int)在进行数据类型转换时,若目标数据类型的小数位数小于源数据类型的小数位数,则该值将被截断。

例如,以下转换的结果为$10.3497:SELECT CAST(10.3496847 AS money)当非数字型 char、nchar、varchar 或 nvarchar 数据转换为 int、float、numeric或 decimal 时,SQL Server 将返回错误消息。

当空字符串 (" ") 转换为 numeric 或decimal 时,SQL Server 也返回错误。

转换二进制字符串数据如果 binary 或 varbinary 数据转换为字符数据,并且在 x 后面指定了奇数位的值,则SQL Server 将在 x 后面添加一个 0(零)使其成为偶数位值。

二进制数据由从 0 到 9 和从 A 到 F(或从 a 到 f)的字符组成,每两个字符为一组。

二进制字符串必须以 0x 开头。

例如,若要输入 FF,需要键入 0xFF。

最大值是一个8000 字节的二进制值,每个字节都是 FF。

binary 数据类型不能用于十六进制数据,而是用于位模式。

对于存储为二进制数据的十六进制数字的转换和计算结果,无法保证其可靠性。

指定 binary 数据类型的长度时,每两个字符被算作是一个单位长度。

长度 10 表示将输入 10 个双字符组。

由 0x 表示的空二进制字符串可以存储为二进制数据。

参数expression任何有效的表达式。

data_type作为目标的系统提供数据类型。

这包括 xml、bigint 和 sql_variant。

不能使用别名数据类型。

有关可用数据类型的详细信息,请参阅数据类型 (Transact-SQL)。

lengthnchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

对于 CONVERT,如果未指定 length,则默认为 30 个字符。

style用于将datetime 或smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)的日期格式的样式;或用于将float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)的字符串格式的样式。

如果style 为 NULL,则返回的结果也为 NULL。

注意:SQL Server 支持本主题中列出的样式与 CONVERT 目标数据类型的所述组合。

所有其他样式和组合都不受支持。

请不要使用任何不受支持的样式。

如果使用不受支持的样式或不受支持的样式与目标数据类型的组合,则可能会返回错误或不可靠的结果。

所有版本的 SQL Server 都不能保证这些结果的准确性。

相关文档
最新文档