----加班时间
--假设一个公司的员工8点上班,18点下班,计算她在下班之后多加的班的时间
select top 1
case when 08<datename(hour,getdate()) and 18>datename(hour,getdate())
then case when (datename(hour,getdate())-18)>0 then (datename(hour,getdate())-18) else 0 end
else case when (datename(hour,getdate())-08)>0 then (datename(hour,getdate())-08) else 0 end
end as class
from AppointLog_tb
----分割字符串
--创建函数
create function split
(
@SourceSql varchar(8000),
@StrSeprate varchar(10)
)
returns @temp table(F1 varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
--执行
select * from split('01_02_03','_')
----消除四列重复数据
--当只有一列数据有重复时想消除它很容易
--但是想消除有多列数据同时重复时就不太容易了,下面是一个简单的实现
delete from [kf_gd_familytraining_tb]
where id not in (select min(id) from [kf_gd_familytraining_tb]
group by globalid,trainingyear,trainingmonth,trainingdate)