日期和时间函数

---------------日期和时间函数------------

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

posted on 2017-08-03 16:46  王宏琳  阅读(231)  评论(0)    收藏  举报