SQL server从入门精通----内置函数

--聚合函数的补充
--var  求某列的方差

--数学函数
    select abs(-1) --绝对值
    select CEILING(3.5)
    select floor(3.5)
    select round(3.5555,2)
        select SQRT(4)
    select square(2)
    select POWER(2,3)
    select RAND()*100
-- 日期时间函数
    select CURRENT_TIMESTAMP  --2015-09-09 22:53:12.727
    select GETDATE()--2015-09-09 22:55:02.980
    select GETUTCDATE() --2015-09-09 14:55:54.867 --世界 标准时间
    
    SELECT YEAR(GETDATE())
    SELECT MONTH(GETDATE())
    SELECT day(GetDate())
    SELECT DateName(year,Getdate()) -- 返回表示指定日期的指定日期部分的字符串
    SELECT DateName(WEEKDAY,Getdate()) --星期三
    --DATEADD (datepart , number, date )
 --   返回给指定日期加上一个时间间隔后的新datetime 值。
 SELECT DATEADD(week,1,GetDate()) --当前日期加一周后的日期

-- DATEDIFF ( datepart , startdate , enddate )
--返回跨两个指定日期的日期边界数和时间边界数。
SELECT DATEDIFF(YEAR,'2006-10-11','2006-11-01') --返回0

--日期函数的转换
--常用

Select CONVERT(varchar(100), GETDATE(), 21)--2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 25)--2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 20)--2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 112)-- 20060516
Select CONVERT(varchar(100), GETDATE(), 121)-- 2006-05-16 10:57:49.700
select CONVERT(varchar(100), GETDATE(), 120)-- 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 23)--2006-05-16
Select CONVERT(varchar(100), GETDATE(), 102)-- 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 14)--10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 24)--10:57:47


--字符串函数
select ASCII('a') --转换为ascii码  97
select char(65) --将ascii码整数转换字符      A
select left('abcdefg',3) --最左侧的3个字符串 abc
select right('abcdefg',3) --最右侧的3个字符串 
select len('abcdefg') --返回字符串的个数  7
select lower('AAaaa') --大写转小写 aaaaa
select upper('AAaaa') --AAAAA
select len(LTRIM('  aaa a     '))--去左右左空格5
select len(rTRIM('  aaa a     '))--去右空格 7
select nchar(15) --返回unicode字符
select REPLACE('abcda','a','bbb') --把a替换成bbb bbbbcdbbb
SELECT STR( 1234.56, 6, 1 )

--从1开始计数
SELECT STUFF('abcdef', 2, 3, 'ijklmn') --aijklmnef
select SUBSTRING('fsdfsd',2,2) sd  

----类型转换
select CAST('123' as int)   -- 123
select CONVERT(int, '123')  -- 123

select CAST(123.4 as int)   -- 123
select CONVERT(int, 123.4)  -- 123 

select 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)  -- 123
select CONVERT(decimal, '123.4') -- 123 


select CAST('123.4' as decimal(9,2))  -- 123.40
select CONVERT(decimal(9,2), '123.4') -- 123.40

 

posted @ 2015-09-10 09:28  code_killer  阅读(217)  评论(0编辑  收藏  举报