类型转换
CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。
CAST是ANSI兼容的,推荐使用CONVERT。
注:T-SQL总支持运算符,数字+数字(如果将数字以‘1’+‘1’形式--会自动转换数据类型,结果为2),即求和; 字符串 + 字符串--拼接字符串;例如:
CONVERT (data_type [ ( length ) ] , expression [ , style ])
CAST (expression AS data_type [ (length ) ])- data_type:目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。
- length:nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
- 日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);
- 数字格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
select 1+2 as sumno --retrun 3 select '1' + '2' as sumno --return 12 select 'a' +'b' as ab --return ab select 'abc' + CONVERT(varchar,2) as abc2 --return asc ,注: 字符串和数字拼接时,需对数字进行类型转换,否则将报错 select CONVERT(varchar,2.21) FloatToString select CONVERT(varchar,2) IntToString select CONVERT(varchar(10),GETDATE(),23) DateToString --(yyyy-MM-dd) 23 表示日期格式,有多种方式
- int to string:CONVERT(varchar,2) ——select CONVERT(varchar,2) IntToString
- float/decimal to string:CONVERT(varchar,2.21) ——select CONVERT(varchar,2.21) FloatToString
- date to string:CONVERT(varchar(10),GETDATE(),23)——select CONVERT(varchar(10),GETDATE(),23) DateToString --(yyyy-MM-dd) 23 表示日期格式,有多种方式

cast方式:
--int to decimal or decimal
SELECT CAST('123' AS float),CAST('456.233' AS decimal(18,2))
--string to datetime
select cast('2012-11-11'as datetime) as StringToDatetimeByCast
--datetime to varchar  无法指定日期格式
select cast(GETDATE() as varchar)
注:常用日期转换格式
SELECT CAST(GETDATE() AS varchar) --输出 07 1 2013 9:56PM 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 CONVERT(varchar,GETDATE(),102) --输出 2020.11.24 SELECT CONVERT(varchar,GETDATE(),111) --输出 2020/11/24 SELECT CONVERT(varchar,GETDATE(),120) --输出 2020-11-24 09:29:55 SELECT CONVERT(varchar,GETDATE(),108) --输出 09:29:55
select convert(char(20) ,convert(datetime,'20220310') , 21) as dd --2022-03-10 00:00:00.
select convert(char(20) ,convert(datetime,'20220310') , 22) as dd --03/10/22 12:00:00 AM
select convert(char(20) ,convert(datetime,'20220310') , 23) as dd --2022-03-10
select convert(char(20) ,GETDATE() , 21) as dd --2023-06-07 14:10:43.
select convert(datetime,'20220310') as dd --2022-03-10 00:00:00.000
在下表中,左侧的两列表示将datetime或smalldatetime转换为字符数据的style值。给style值加 100,可获得包括世纪数位的四位年份 (yyyy)。
* 默认值(style0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。

--实现Image类型转Text ------------------实现Image类型转Text------------------ --1.新增一字段 ALTER TABLE [InformedConsentInfo] ADD SignatureImg1 text GO --2.将数据更新至新增列 UPDATE [InformedConsentInfo] SET SignatureImg1 = CAST(CAST(SignatureImg AS text) AS text) GO --3.删除错误插入的字段 ALTER TABLE [InformedConsentInfo] DROP COLUMN SignatureImg GO --4.对新增的字段进行重命名 sp_rename 'InformedConsentInfo.SignatureImg1','SignatureImg','column'
--大写
upper('aaaaa')--小写lower('BBBB')--截取左边第1位字符串left(‘abCdsE’,1)--获取字符串长度len(‘abCdsE’)--截取从第2位到最后一位字符串SUBSTRING(‘abCdsE’,2,len(‘abCdsE’))
    博客内容主要用于日常学习记录,内容比较随意,如有问题,还需谅解!!!
 
                    
                     
                    
                 
                    
                 

 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号