select datename(weekday, getdate())select datepart(weekday, getdate())
解决方案 »
- c#任何把数据库的多条消息一次性读取完呢?
- winform 存储进度
- 文件或文件夹右键菜单中添加二级菜单
- 水晶报表布署到WEBSERVER运行时不显示工具条图标,如何解决?
- [Winform]在一程序内如何判断一个名为"最新公告"的窗口是否已打开??
- C#--现在要使用c#安装那个版本编译工具比较好一些。已经安装过vc6的机器上安装c#有什么要注意的,要不要卸载以前安装的vs.
- 欢迎,对 sharpdevelop 源码感兴趣的请进来
- 软件重用技术的应用
- C#中有功能强大的表格功能或控件吗?
- 有没有类似任务栏自动隐藏的api...?
- 大家帮帮忙,求指教,关于线程的
- 有人能讲解一下Linq中的并行计算在“TakeWhile”时的机制吗。。
dateID int identity primary key,
begintime datetime,
endtime datetime
)
insert into testDate values('2014-6-1','2014-7-1');
insert into testDate values('2014-6-2','2014-7-2');
insert into testDate values('2014-6-3','2014-7-3');
insert into testDate values('2014-6-4','2014-7-4');
insert into testDate values('2014-6-5','2014-7-5');
insert into testDate values('2014-6-6','2014-7-6');
insert into testDate values('2014-6-7','2014-7-7');
insert into testDate values('2014-6-8','2014-7-8');
insert into testDate values('2014-6-9','2014-7-9');
insert into testDate values('2014-6-10','2014-7-10');
insert into testDate values('2014-6-11','2014-7-11');
insert into testDate values('2014-6-12','2014-7-12');
insert into testDate values('2014-6-13','2014-7-13');
insert into testDate values('2014-6-14','2014-7-14');
insert into testDate values('2014-6-15','2014-7-15');
insert into testDate values('2014-6-16','2014-7-16');select COUNT(1) from testDate where datepart(weekday, begintime)<>1
declare @d1 date = '2014-6-3' -- 开始日期
declare @d2 date = '2014-6-17' -- 结束日期, 不含此天
select DATEDIFF(d,@d1,@d2) - ((5+DATEPART(weekday,@d1))%7+DATEDIFF(d,@d1,@d2))/7
declare @Days int -- 总天数
declare @Week int -- 星期数
declare @WorkDays int -- 工作天数
SELECT @Week=DATEDIFF(wk,'2014-01-01','2014-10-30')
SELECT @Days=DATEDIFF(DD,'2014-01-01','2014-10-30')
set @Week = @Week *2
set @WorkDays = @Days- @Week
select @WorkDays测试。。
http://www.w3school.com.cn/sql/sql_dates.asp
上班天数=结束时间-开始时间-休息天数
休息天数去我刚才说的表里按时间段查出来是多少天.
或者也可以做个联合查询
select endtime-starttime-(select count(*) from 表2 where time<=endtime and time>=starttime) from 表1
上班天数=结束时间-开始时间-休息天数
休息天数去我刚才说的表里按时间段查出来是多少天.
或者也可以做个联合查询
select endtime-starttime-(select count(*) from 表2 where time<=endtime and time>=starttime) from 表1是在不行就只有这样了,我也想到建两个时间表,但是有一个问题,就是今天是6-24日,如果用户想查6-1日到6-30日的情况,用户本来是想如果没有发生使用计划离开时间,但你这么做的话就没法查了,因为表中还没有24日以后的数据
上班天数=结束时间-开始时间-休息天数
休息天数去我刚才说的表里按时间段查出来是多少天.
或者也可以做个联合查询
select endtime-starttime-(select count(*) from 表2 where time<=endtime and time>=starttime) from 表1是在不行就只有这样了,我也想到建两个时间表,但是有一个问题,就是今天是6-24日,如果用户想查6-1日到6-30日的情况,用户本来是想如果没有发生使用计划离开时间,但你这么做的话就没法查了,因为表中还没有24日以后的数据
没有数据不要紧啊,没有数据的count(*)也不会计算没有数据的部分啊.
count(*)只计算有数据的记录数,一条都没有也不过是返回0而已,不会影响你总的查询结果.
而且即使你出差的数据是从1-24,但是休息日是提前录入了整个一年的,也不会有问题
因为休息日表的查询条件是从出差表里获取的,不会把24日之后的休息日也算进去并扣除掉
比如这个
我想查2014-06-11到2014-06-25
那么id=2是2014-06-25减去2014-60-11
id= 3是2014-06-19减去2014-60-11
id=4就是2014-06-11减去2014-06-11 等于1天
id=5则是2014-6-25减去2014-6-17
id=6则是2014-6-22减去2014-6-19
然后在减去相应的周日天数