我有一个问题,如何按月拆分星期。实际上,我的周从星期一开始,在sql server周从星期天开始,这就产生了这个问题。如果用户提供的开始日期和结束日期的日期差异超过30且小于90,我必须编写代码,以便日期在几天和几周内分开。这是这样完成的 - 首先我必须找到是什么,如果开始日期适逢星期一,然后它的好以外第一我一定要找到什么时候是上周一为了这个,我发现 -如何从星期一拆分星期
declare @enddate date = '2015-08-01';
select convert (date, DATEADD(wk, DATEDIFF(wk, 0,@enddate),0))
但它不会,如果开始工作的开始日期日期是为了这个,我已经添加了一个变量,它会检查是什么日子开始一天,如果是星期天,然后我把它设置为1,然后我改变了我的代码─(周日只)
declare @enddate date = '2015-08-02';
select convert (date, DATEADD(wk, DATEDIFF(wk, 6,@enddate),0))
周日210
对我来说,主要的问题是几周内如何分手。我按给定的代码分裂了几周。 这是例如日期
declare @enddate date = '2015-11-03';
SELECT 'Week ' + CAST(DATEPART(WEEK,@ENDDATE)
- DATEPART(WEEK,DATENAME(YEAR,@ENDDATE) + '/'
+ DATENAME(MONTH,@ENDDATE) + '/' + '1') AS NVARCHAR)+ ' ' + DATENAME(MONTH,@ENDDATE)
是 -
Week 0 November
而且它显示0周,1和7之间的所有日期十一月
谁能帮助我,为什么它显示本周ouptut 0不是第2周,因为我的星期从星期一和2015年11月开始,因此只有一天应该是第1周,并且从11月2日到11月8日应该是第2周 欢迎任何帮助,请评论,如果你不了解我也试图去抛媚眼并试用了此网站本身第一,但不找到任何
EDITED-希望有一个逻辑,这样我就可以一周从周一分裂到周日,但我不能把它原样
如果一个月改变在几个星期之间,一个月中的30个是星期二,因此这个星期只应在这里结束,下个月1将在星期三现在从周三到周日开始的每个月的新的一周将是该月的第一周。
在我的案例逻辑我已经得到它,但具体到2015年11月我无法得到它。
输出须─
Start date -2015-09-07 End date-2015-11-01
Output
Start date End date
Week 2 September Week 1 November
Start date -2015-09-07 End date-2015-11-05
Output -
Start date End date
Week 2 September Week 1 November
2015-11-02 2015-11-05
Start date -2015-09-07 End date-2015-11-08
Output -
Start date End date
Week 2 September Week 2 November
Start date -2015-09-08 End date-2015-11-05
Start date End date
2015-09-08 2015-09-13
Week 3 September Week 1 November
2015-11-02 2015-11-05
张贴这没有很大的意义。有很多文字,但它并没有描绘出你想要做什么的清晰画面。 –
我不明白什么时候开始/我看不到开始日期。你可以添加清楚的例子,开始和结束日期及其各自的输出。你目前的例子现在没有什么意义。 –
你能再次检查吗 –