--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())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。