• sql一些常用的类型转换、日期、字符串函数


    --1.类型转换convert() cast()
    --convert(data_type,expression,[style])
        注意:对于时间转换,只能用convert()
        print convert(varchar(16),getdate(),120)
    --cast(expression as data_type)
    print convert(varchar(16),getdate(),120)
    
    --2.union()联合结果集
    --union指的是联合的意思,是将多个结果联合成一个结果集,把所有的记录都
    --加起来编程一个大的结果集
    --可以union的前提:每个结果集的列的个数都得一致
        --并且多个结果集之间的列的数据类型需要意义对应。    
        --union 使用union的时候默认执行去重复的操作,
        --union all(在不不需要去重的前提下,推荐用这种)因为union要进行重复字扫描,所以效率低
    select 商品名称,SUM(销售数量*销售价格)as 销售总价 from MyOrders group by 商品名称
    union  select '销售总价',sum(销售数量*销售价格)from MyOrders
    
    --3.在一个表中一次性插入多条数据
    select * from Contacts
    insert Contacts
    select '翟群','18721586025','547916475@qq.com',1 union all
    select '嘻嘻','1345678901','heh@qq.com',2 union all
    select '哈哈','1234567891','163@qq.com',3 union
    
    --4.备份表
    select * into MyStudentNew from MyStudent。
    --说明:上述sql语句表示复制Mystudent表到MystudentNew表中,但是约束不会被复制。
    --如果已经存在一个Mystudent表了,则会报错。
    
    --5.只复制表结构
    select * into MystudentNew1 from MyStudent where 1<>1
    select top 0 * from into MyStudentNew1 from MyStudent
    
    --6.将一张表的数据插入另一张已经存在的表中
    insert into MyStudentNew2
    select isnull(tsname,'匿名学生'),Isnull(tsage,18),tsgender,0,0,tsclassId,isnull(tsbirthday,getdate()) from TblStudent
    
    
    ---------------------------字符串函数--------------------
    select len('hi,中华')  --返回字符串中字符的个数 5
    select datalength('hi,中华') --返回该字符所占用的字节数 7
    select datalength(N'hi,中华') --返回该字符unicode编码方式的字节数 10
    
    select upper('how are you ') --返回大写字符串
    select lower('HOW ARE YOU')  --返回小写字符串
    
    print '-------'+ltrim('     hello   ')+'----------' --去掉左边的空格
    print '-------'+rtrim('     hello   ')+'----------' --去掉右边的空格
    print '-------' +trim('     hello   ')+'----------' --去掉两边的空格
    
    --substring(value_expression,start_expression,lenght)索引从1开始
    print substring('123456',1,3)  --结果为123
    print substring('123456',0,3)  --结果为12
    print substring('123456',-1,3) --结果为1
    
    print substring('123456',-1,3)
    
    -------------------------日期函数------------------------
    
    getdate() --获得当前日期时间
    print dateadd(year,5,getdate()) --在当前年加上5年,若减五年,写成-5
    print dateadd(month,2,getdate()) --在当前年月加上5月
    print dateadd(hour,2,getdate())     --当前时间上加上2个小时
    
    getdiff() --计算两个日期之间的差
    print datediff(year,'2013-12-8 00:00:00.000',getdate()) --年份之差
    print datediff(month,'2013-12-9 00:00:00.000',getdate())--月份之差
    print datediff(day,'2013-12-9 00:00:00.000',getdate())  --天数之差
    print datediff(hour,'2013-12-8 00:00:00.000',getdate()) --时间之差
    print datediff(second,'2013-12-8 00:00:00.000',getdate()) --分钟之差
    
    datepart() --截取日期的某部分
    print detepart(weekday,getdate())
    
    print datepart(weekday,getdate())--一周的第几天
    print datepart(week,getdate())   --一年的第几周
    print datepart(month,getdate())     --一年的第几个月
    print datepart(dayofyear,getdate()) --一年的第几天
    print datepart(day,getdate())     --一个月中的
  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    flutter webview_flutter 设置cookies
    flutter richText富文本
    flutter 安卓再次点击返回退出应用
  • 原文地址:https://www.cnblogs.com/tobecabbage/p/3570066.html
Copyright © 2020-2023  润新知