下表:
hDate Holiday
17/12/2011 National Day
01/01/2012 New Year
....
从表格中,我想找出两个日期之间的假期总数:
类似这样的查询:
select count(hdate)
from table1
where hdate between '" & start_date & "' and '" & end_date & "'
用户输入:
start_date = '16/12/2011'
end_date = '15/01/2012'
我还想找两个日期之间的星期五。
对于查找星期五,如何创建查询?
预期输出:
Holiday Friday
2 5
从table1放假2-2天,周五5-5天
该怎么做呢?
发布于 2012-01-26 17:01:30
这将计算两个日期之间的星期五:
declare @from datetime= '2012-01-26'
declare @to datetime = '2012-01-28'
select datediff(day, -3, @to)/7-datediff(day, -2, @from)/7
假期很容易找到,似乎你已经涵盖了这一部分。
我之前已经回答过这个问题了。但没有得到任何信任:
How to calculate the number of "Tuesdays" between two dates in TSQL?
发布于 2012-01-26 16:47:08
请参见:
Why should I consider using an auxiliary calendar table?
日程表可以使围绕任何涉及日期的业务模型开发解决方案变得更加容易。据我所知,在某种程度上,这几乎涵盖了你能想到的任何商业模式。持续不断的问题最终需要冗长、复杂和低效的方法,包括以下问题:
发布于 2012-01-26 18:04:52
该选择将帮助您:
DECLARE @FROMDATE DATE = '2009-01-07'
DECLARE @TODATE DATE = '2012-01-26'
SELECT COUNT(*) holidays,(select COUNT(*) from table1 where DATEPART(DW, hdate) = 5
AND DT BETWEEN @FROMDATE AND @TODATE ) fridays FROM table1
WHERE hdate BETWEEN @FROMDATE AND @TODATE
https://stackoverflow.com/questions/9015412
复制相似问题