【发布时间】:2012-10-15 11:47:05
【问题描述】:
我有以下查询,它为我产生了许多结果。其中之一是每条记录的天数。
现在我需要一个更准确的数字,方法是从等式中删除周末。不知道如何继续并努力理解我找到的答案。到目前为止,我的查询是:
select
i.incidentnumber,
i.priority,
i.status,
i.subject,
i.actualsystem,
t.ownerteam,
convert(varchar,i.createddatetime,103)[Created],
convert(varchar,i.lastmoddatetime,103)[Modified],
datediff(day,i.createddatetime,{fn now()})[Days old],
datediff(mi,i.createddatetime,{fn now()})[Minutes old],
cast(i.createddatetime
i.owner
from
incident i with (nolock) inner join task t with (nolock) on t.parentlink_recid = i.recid
where
i.status <> 'Closed'
and i.actualsystem <> 'System Administration'
--and i.service <> 'Service Request'
and t.status in ('Active','Waiting','Accepted')
--and t.ownerteam <> 'UK Service Desk'
order by
--t.ownerteam asc
--i.actualsystem asc
datediff(day,i.createddatetime,{fn now()}) desc
我正在使用 SQL 服务器管理器并查询 2005 数据库。我根据需要注释掉。旧的分钟是今天添加的新列。有人可以帮忙吗?
【问题讨论】:
-
周末只有周六和周日吗?假期呢?周五的假期是否被视为周末的一部分?假期是一般计算还是不计算?这个网站上已经有很多关于计算两个日期之间的天数的问题,最可靠的解决方案通常是calendar table,您可以简单地将天标记为工作日并编写简单的查询来获得答案。
标签: sql sql-server sql-server-2005 datediff