--1给表的日期字段设置默认值为当前日期 create table TestDatetime ( autoId int identity(1,1) primary key, Uname varchar(50), Ubirthday datetime )
--2使用GETDATE()方法获得当前日期 select GETDATE() print GETDATE()
Print convert(varchar(50),getdate(),105) print cast(getdate() as varchar(10))
dateadd
print dateadd(day,100,getdate()), print convert(varchar(50),dateadd(day,200,getdate()),111)
?
--给如日超过1年的员工加薪1000¥
select * from Employees
update Employees set EmpSalary=EmpSalary+1000 where DATEADD(year,1,EmpInTime)<GETDATE()
?
datediff
--1983年11月22日 与现在getdate()相差多少年/月/日/时/分/秒? print datediff(year,'1983-11-22',getdate())
print datediff(month,getdate()) print datediff(day,getdate()) print datediff(hour,getdate()) print datediff(minute,getdate()) print datediff(second,getdate())
--获取日期的一部分YEAR(日期),DAY(),MONTH() --DATEPART
PRINT YEAR(GETDATE()) PRINT MONTH(GETDATE()) PRINT DAY (GETDATE()) print datepart(hour,getdate()) print datepart(minute,getdate()) print datepart(second,getdate()) print datepart(ms,getdate())
?
--输出所有数据中通话时间最长的5条记录 select? top 5*,通话时长=DATEDIFF(second,StartDateTime,EndDateTime) from CallRecords order by 通话时长 desc,CallerNumber desc
--输出所有数据中拨打长途号码(对方号码以0开头)的总时长。
select SUM(DATEDIFF(second,EndDateTime)) as 通话总时长 from CallRecords where TelNum like '0%'
--4输出本月拨打电话次数最多的前三个呼叫员的编号.group by,count(*) --本月 select top 3 ?? CallerNumber as 呼叫员编号, ?? COUNT(*) 呼叫次数 from CallRecords
where DATEDIFF(month,GETDATE(),STARTDATETIME)=0
group by CallerNumber order by 呼叫次数 desc
?
--输出本月通话总时长最多的前三个呼叫员的编号 select CallerNumber as 呼叫员编号, SUM(datediff(second,EndDateTime)) as 总通话时长 from CallRecords where DATEDIFF(month,STARTDATETIME)=0 group by CallerNumber order by 总通话时长 desc
--按照月份分组
select? datediff(month,getdate()) from CallRecords group by datediff(month,getdate())
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|