数据库字符串函数,日期时间函数

来源:互联网 发布:张敬轩 知乎 编辑:程序博客网 时间:2024/05/22 03:36

–按照商品名称算出相应的销售总价,最后再合计
select
商品名称,
销售价格=(sum(销售数量*销售价格))
from MyOrders
group by 商品名称
union all
select ‘所有商品销售总价:’,SUM(销售数量*销售价格) from MyOrders

–一次插入多个数据
insert into dbo.TblStudent(tsName,tsAddress,tsPhone,tsAge,tsClassID)
SELECT ‘章子怡’ ,’上海’,110,25,108 union all
select ‘蔡依林’,’台湾’,120,30,109 union all
select ‘周杰伦’,’伦敦’,119,50,110 union all
select ‘王飞’,’美国’,114,30,109 union all
select ‘王力宏’,’美国’,190,11,109 union all
select ‘蔡依林’,’台湾’,120,30,109

select * from TblStudent3

–把现有的表插入到新表(在查询的同时自动建立),通过这个方式复制,只能复制表中的数据,不能复制约束关系
select * into TblStudent2 from TblStudent

–只复制表的结构,不复制内容
select * into TblStudent3 from TblStudent where 1<>1
select top 0 * into TblStudent3 from TblStudent

–字符串函数

计算字符串长度
SELECT LEN(‘我和你qqq’)

–计算字符串所占的字节数,不属于字符串函数
select DATALENGTH(‘我和你’)

–大小写的转换
select lower(‘QQQQQQ’) –将QQQQQQ转换为小写
select UPPER(‘qqqqqq’) –将qqqqqq转换为大写

–字符串左侧的空格去掉
SELECT (‘=========’+LTRIM(’ HELLOW’))+’==========’
–字符串右侧的空格去掉
SELECT (‘=========’+RTRIM(‘HELLOW ‘))+’==========’

–截取字符串
select left(‘asdfgh’,2) –结果为as吗

–截取3-8中间的字符串,在sql中索引是从1开始的
select SUBSTRING(‘我爱北京天安门’,3,8)

日期时间函数

输出数据库服务器时间
print datename(year,getdate())+10

print datepart(year,getdate())+10

–dateadd 在制定的日期上加一定的时间或日期后的新值
print dateadd(year,2,’1994-03-26’)(在1994年3月26号的年上加2)
print dateadd(year,2,getdate())
print dateadd(year,-2,getdate())

create table TestDate
(
autoId int identity(1,1) primary key,
userName nvarchar(50),
JoinTime datetime,
)

–查询入职满一年的行数
insert into TestDate
select ‘韩鸣’,’2013-5-4’ union all
select ‘韩鸣1’,’2003-5-4’ union all
select ‘韩鸣2’,’2012-7-4’ union all
select ‘韩鸣3’,’2005-5-4’ union all
select ‘韩鸣4’,’2012-5-4’ union all
select ‘韩鸣5’,’2008-5-4’ union all
select ‘韩鸣6’,’2010-5-4’ union all
select ‘韩鸣7’,’2016-5-4’ union all
select ‘韩鸣8’,’2011-5-4’ union all
select ‘韩鸣9’,’2009-5-4’

select * from TestDate
WHERE DATEADD(YEAR,1,JoinTime)<=GETDATE()

–datadiff两个日期之间相差的时间
select datediff(HOUR,1994-03-26,GETDATE())

–不同年份出门学生的人数
select
tsName,
tsBirthday,
DATEDIFF(YEAR,tsBirthday,GETDATE()) as 年龄,
DATEPART(YEAR,tsBirthday) as 年份

from TblStudent

select

DATEPART(YEAR,tsBirthday) as 年份,
count(1) as 出生的人数
from TblStudent
group by DATEPART(YEAR,tsBirthday)

0 0