日期和时间函数
---------------日期和时间函数------------
print getdata()
print sysdatetime()
--精确 --dateadd()
增加时间
--datediff计算两个日期的差
select datediff(year,'1991-5-31'getdate())
select datediff(month,'1991-5-31'getdate())
select datediff(day,'1991-5-31'getdate())--天
select datediff(hour,'1991-5-31'getdate())--小时
select datediff(second,'1991-5-31'getdate())--秒
--datediff只是两者相减。
--请统计出入职n年的人的个数
select
count(*) as 人数 ,
工龄= datediff(day,joindate,getdate())/365
from explement
group by datediff(day,joindate,getdate())/365
--获取日期的某部分的值
print datepart(year,getdate())
--datepart 数字类型 可以加减
print datepart(month,getdate())
print datepart(hour,getdate())
print datepart(minute,getdate())
print datepart(second,getdate())
print datename(year,datename())
--datename 字符串类型 不可以加减
--请查询出,不同年份入职的员工的个数。
select
员工人数=count(*),
入职年份=year(joindate)
from emplement
group by year(joindate)
--输出所有数据中通话时间最长的五条记录
select
*,
datediff(second,endtime,starttime) as '通话时长'
from cellcenter
order by 通话时长 desc
--输出所有数据中拨打长途号码(对方号码以0开头)的总时长,like sum
select
总时长=sum (datediff(second,endtime,starttime))
from cellcenter
where phonenumber like 'o%'
--假设今天是'2017-07-31'
--输出本月通话总时长最多的前三个呼叫员的编码
select top 3
sum(datediff (second,endtime,starttime)) as '总时长'
comID as '员工编码'
from cellcenter
where datediff(month,starttime,'2017-07-31')=0
group by comID order by '总时长' desc
--输出本月拨打电话次数最多的前三个呼叫员的编号 。group by,count(*)
select top 3
count(*)=拨打电话次数,
呼叫员编号=comID,
from cellcenter
where datediff (month,starttime,'2017-07-31')=0
group by comID order by 拨打电话次数 desc
浙公网安备 33010602011771号