SQL Server 多类常用函数的使用

日期类函数

1.返回系统当前日期及年,月,日,时,分,秒分项

select getdate() as 当前日期,
		year(getdate()) as,
		month(getdate()) as,
		day(getdate()) as,
       datename(Hh,getdate())as,
       datename(Mi,getdate())as,
       datename(Ss,getdate())as
  1. Datepart():返回代表指定日期的指定日期部分的整数
    语法:Datepart(datepart,date) 返回类型:int

  2. DateName():返回代表指定日期的指定日期部分的字符串
    语法:DateName(datepart,date) 返回类型:nvarchar
    在这里插入图片描述

2.返回毕业距今相差星期数

SELECT datediff(wk,'2018-06-6 10:10',GETDATE()) 星期数

3.查看当前日期对应星期几?

select  datename(dw,getdate()) 星期

串型函数

在这里插入图片描述

1.取子串应用

DECLARE @StringTest char(10)
SET @StringTest='Robin'
SELECT LEFT(@StringTest,3) /*从字符串左边取3个字符*/

2.将一个数据转成串操作

--STR(f/d):数据转换成字符串
SELECT 'A'+82      --报错 varchar 值 'A' 转换成数据类型 int 时失败。
SELECT 'A'+STR(82)   --A    82   中间有空格
SELECT 'A'+LTRIM(STR(82)) --A82  LTRIM函数清除字符串前后的空格

3.将指定的字符串的字符排列顺序颠倒操作 REVERSE()

select reverse('abc')    -- cba

4.子串替代操作 STUFF()

select stuff('abcdaaa',1,5,'x')  --xaa  从第一个字符开始 到第五个字符 替换成x

类型转换函数

1.将一数值与一个串型对象连接起来

DECLARE @StringTest char(10),  @IntTest int
SET @StringTest='数据库成绩:'
SET @IntTest =90
SELECT LEFT(@StringTest+cast(@IntTest   as char(4)),7) as 考试成绩

2.将本人生日处理成一个串输出,取日期元素2方式:datename(),datepart()

--如:2014年10月27日15时39分……

DECLARE @WhatsTheDay datetime,@currentDay datetime
SET @WhatsTheDay='2000-5-1 10:00:00'
set @currentDay=getdate()
SELECT
CONVERT(char(4),DATEPART(yyyy,@WhatsTheDay)  )+'年'+
CONVERT(char(2),DATEPART(mm,@WhatsTheDay) )+'月'+
CONVERT(varchar(2),DATEPART(dd,@WhatsTheDay))+'日'+
convert(varchar(2),datepart(hh,@WhatsTheDay))+' 时'+
convert(varchar(2),datepart(mi,@WhatsTheDay))+' 分'+
convert(varchar(2),datepart(ss,@WhatsTheDay))+' 秒' 生日

--2000年5 月1日10 时0 分0 秒

简单编程应用

1.求水仙花数

declare @b int ,@s int , @g int ,@n int ,@i int
set @i=100
while(@i<1000)
begin
	set @b = @i / 100;                           
	set @s = @i/10%10;                           
	set @g = @i % 10;   
	if (@i=@b*@b*@b+@s*@s*@s+@g*@g*@g)
		begin         
 			print(@i)
		end              
	set @i=@i+1                    
end
--153 370 371 407

求1+2+。。。+100和值

declare @S smallint,@I smallint,@NUMS smallint
    set @S=0 --总和
    set @I=1  --从1开始
    set @NUMS=0 --个数默认为0个
    while(@I<=100) --循环
    begin
        set @S=@S+@I  --总和 --当@I某个数符合时,就是加它,即得这些数的总和
        set @NUMS=@NUMS+1 --如果条件符合个数就自动加班
        set @I=@I+1 --循环加值
    end
    print @S  --输出总和  5050
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值