【问题标题】:Get all dates for a specific day of week (e.g. Monday) between 2 dates获取 2 个日期之间特定日期(例如星期一)的所有日期
【发布时间】:2015-09-17 07:17:44
【问题描述】:

考虑到 2015-01-01 和 2015-01-30 之间的 2 个日期,我需要找到该期间每个星期一和每个星期日的日期。

我有一个报告,用户需要选择一个日期范围,并从日期范围计算每个星期的第一天和一周的最后一天并以这种方式传递。

它目前在 SSRS 中的工作方式是

exec storedprocname
@BD=N'798211,798654,798664,798826',
@CGNo=N'47',
@SCGNo=N'4701,4702,4703,4704,4705,4706,4707,4708',
@ProductClass=N'1,2,4,3',
@ProductCode=N'1020',
@Region=N'772',
@FirstDayOfWeek='2014-01-06 00:00:00',
@LastDayOfWeek='2014-01-12 00:00:00'

用户选择多个星期一和星期日,报告是一个矩阵表和矩阵在一周的第一天

FirstdayOfWeek = '2014/06/09,2014/06/16'

LastdayOfWeek = '2014/06/15,2014/06/23'

我需要的是用户选择的日期范围,它仍然会以相同的方式传递它

@startdate '2015/01/01' = 星期四(为此选择本周的星期一)

@startdate '2015/02/01' = 星期日

【问题讨论】:

  • 您将其标记为 MySQL 代码,但它看起来像 SQL Server 代码。
  • 你想得到什么查询结果?

标签: sql-server-2008 visual-studio-2012 reporting-services ssrs-2008-r2


【解决方案1】:

您可以使用SSRS内置函数WEEKDAYNAME

=WEEKDAYNAME(DATEPART("dw", Fields!myDate.Value)

=WEEKDAYNAME(DATEPART("w", Fields!myDate.Value)

您可以使用 weekdayname 函数来过滤您的数据集或矩阵或在 IFF 表达式中使用。

如果你想在 SQL Server 中处理它,你可以使用dataname 函数。

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2015-05-20
    • 1970-01-01
    相关资源
    最近更新 更多