【问题标题】:How to default the date time other than today in SSRS如何在 SSRS 中默认除今天以外的日期时间
【发布时间】:2020-10-29 06:15:36
【问题描述】:

我有一个参数@enddate 来获取日期值。目前我们的默认值为Now()

它适用于今天的日期和当前时间。

当我为此 enddate 选择另一天时,它显示为 d,但时间从未改变。

我可以在选择今天以外的日期时默认时间为11:59:59pm,但在选择今天时仍然获得当前时间吗?

谢谢

【问题讨论】:

  • 你真的需要时间吗?对于 NOW(),WHERE DateTimeField < @DATETIMEWHERE CAST(DateTimeField AS DATE) < @DATE 之间没有区别。

标签: sql datetime ssrs-2012


【解决方案1】:

您可以对您的查询和参数设置进行一些更改,并且您将能够完成您所要求的内容,“默认时间为11:59:59 PM当最终选择的日子,但仍然在选择时获得当前时间今天”。

@enddate 之后添加另一个参数,我将其命名为@enddate2。将@enddate2 设置为日期时间字段,将其设置为隐藏,并将查询中所有现有的@enddate 替换为@enddate2

使用以下代码作为您的 @enddate2 默认值。该代码基本上说如果您的@enddate 是当天,那么它将显示与您所拥有的相同的值(今天与当前时间)。否则,它将使用@enddate 中的日期并将11:59:59pm 添加到时间。

=IIF(
Format(Parameters!enddate.Value, "MM/dd/yyyy")=Format(NOW(), "MM/dd/yyyy"),
NOW(),
DATEADD("h", 23, DATEADD("n", 59, DATEADD("s", 59, Format(Parameters!enddate.Value, "MM/dd/yyyy")))))

【讨论】:

  • 您好 Papermoon 88,谢谢您的回答。该方法在开始时工作正常,但随后出现错误而没有任何进一步的更改。错误是报告参数“enddate2”的 defaultValue 表达式包含错误:参数“DateValue”无法转换为“Date”类型。 (rsRuntimrErroeInExpression)
  • 嗨 Papermoon88。我刚刚更改了 enddate=Today() 和 enddate2==IIF( Format(Parameters!enddate.Value, "MM/dd/yyyy")=Format(Today(), "MM/dd/yyyy"), NOW(), DATEADD("h", 23, DATEADD("n", 59, DATEADD("s", 59, Format(Parameters!enddate.Value))))) ---------- 这完美。
猜你喜欢
  • 2018-01-13
  • 1970-01-01
  • 2014-05-01
  • 2011-04-22
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多