当前位置: 代码迷 >> SQL >> sql 中刚刚学的几个小函数
  详细解决方案

sql 中刚刚学的几个小函数

热度:16   发布时间:2016-05-05 11:18:14.0
sql 中刚学的几个小函数

1、convert()函数;

转换数据转换格式

convert(data_type(length),data_to_be_converted,style)

data_type(length)?:规定目标数据类型(带有可选的长度);

data_to_be_converted?含有需要转换的值;

style?规定日期/时间的输出格式;

例:

convert(varchar(10),getdate(),110) 

?注:style 在SqlServer中是规定好的,大概二十多种吧,可以自己去搜索一下

此外convert()的style还可用于数字类型,它们对小数与千分位分隔符格式产生影响

例:

declare @num Money  set @num= 123456.78  select convert(varchar(50), @num,0) 

?当style为 0 时:

结果为:123456.78

当style为 1 时:

结果为:123,456.78

当style为 2 时:

结果为:123456.7800

?

2、newid()?

生成一个uuid

?

declare @uuid uniqueidentifierset @uuid = newid()print [email protected] 的值是: '+ convert(varchar(255), @uuid)

[email protected] 的值是: 091CEB13-262A-4DB8-A479-264B27BF5EE0

?

3、replace()函数

replace( '目标string' , '要replace的string' , 'replace_string' )

?

很强大,可以用来修改时间格式

select replace('2000-02-30','-','') go

?

输出:20000230?

?

4、isdate()函数;

顾名思义,判断是否是有效的日期

?

5、abs()函数;

求绝对值的

?

?

在最后写一段代码,是关于时间格式的,大家知道SqlServer的时间格式,有的时候在给的那些例子里面是找不到的,例如这其中就没有yyyyMMddhhmmss的

select replace(replace(replace(convert(varchar(100),getdate(),120),'-',''),' ',''),':','') newtime

?将小数点向后移动两位

declare @number intset @number = 3.1415926select convert(decimal(38,2),@number*100)

?

?

  相关解决方案