根据两日期字段生成两日期间隔天数字段
来源:互联网 发布:天盟数码 知乎 编辑:程序博客网 时间:2024/06/06 16:30
表结构数据如下:(sdate预计时间,edate实际时间)
id sdate edate
1 2010-01-01 2010-01-03
2 2010-01-02 2010-01-04
3 2010-01-04 2010-01-02
4 2010-01-07 2010-01-03
5 2010-01-08 2010-01-08
6 2010-01-15 2010-01-09
7 2010-01-23 2010-01-20
统计结果如下:(按2天的来进行统计,实际时间和预计时间来进行比较)
准交期 数量
...
提前6天 1
提前4天 1
提前2天 2
当天 1
延迟2天 2
....
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
create table [TB]([id] int,[sdate] datetime,[edate] datetime)
insert [TB]
select 1,'2010-01-01','2010-01-03' union all
select 2,'2010-01-02','2010-01-04' union all
select 3,'2010-01-04','2010-01-02' union all
select 4,'2010-01-07','2010-01-03' union all
select 5,'2010-01-08','2010-01-08' union all
select 6,'2010-01-15','2010-01-09' union all
select 7,'2010-01-23','2010-01-20'
select * from [TB]
select id,sdate,edate
from tb
/*
准交期 数量
...
提前6天 1
提前4天 1
提前2天 2
当天 1
延迟2天 2*/
select
[准交期]=
case when datediff(dd,edate,sdate) < 0 then '延迟' +convert(varchar(2),datediff(dd,edate,sdate)) +'天'
when datediff(dd,edate,sdate) > 0 then '提前' +convert(varchar(2),datediff(dd,edate,sdate)) +'天'
else '当天' end ,
[数量] = count(*)
from tb
where datediff(dd,edate,sdate)%2 = 0
group by datediff(dd,edate,sdate)
/*
准交期 数量
-------- -----------
延迟-2天 2
当天 1
提前2天 1
提前4天 1
提前6天 1
(5 行受影响)*/
- 根据两日期字段生成两日期间隔天数字段
- 计算两日期间隔天数
- java计算两日期间隔天数
- 两日期间隔
- 【纯C++】 求两string日期间隔天数
- 两日期相差的天数
- 计算两日期相差天数
- 两日期之间的天数
- 计算两日期相差天数
- java根据当前日期+指定天数(月份...)得到相应日期,计算两日期之差
- 根据两个日期计算此两日期之间的总天数
- Oracle查询两日期间隔的年月日
- 求两日期之间的天数
- 计算两日期之间的工作日天数
- SQL 计算两日期的天数
- java计算两日期之间的天数
- java 计算两日期相差的天数
- 计算jsp两日期相差天数(dojo)
- 赫夫曼树
- 苹果CEO乔布斯斯坦福大学毕业典礼演讲
- 循环显示图片
- 跟随鼠标的字符
- typedef
- 根据两日期字段生成两日期间隔天数字段
- ibaitis实例
- 漂浮的图片
- chrome safari第二次提交表单bug
- 【转】 【用以自勉】哈佛大学凌晨4点半的景象
- 美国十大毕业典礼演讲:记着你总会死去……
- SSRS throws "The operation has timed out."
- 设计规范化
- 设置对话框背景的几种方法