【问题标题】:Subtracting Days from Current Date从当前日期减去天数
【发布时间】:2014-06-26 14:13:01
【问题描述】:

我有一个expression,显示当前的日期、月份和年份:

=Mid(Today(),1,9)

如何显示当前日期的前一周?因此,如果今天是6/26/2014,它将在旁边的框中显示6/19/2014。我尝试使用DateAdd 并添加-7,但这给了我一个错误。

【问题讨论】:

  • 在表达式编辑器中您将使用 DateAdd("d",-7,),但在 SQL 中您将使用 DATEADD(DAY, -7, );
  • 我试过这个表达式,效果很好.. =DateAdd(DateInterval.Day, -7,Today())
  • 我建议在报告中使用自定义代码创建一个函数,并传递日期值并从该函数返回预期值。用 Try Catch 块包装它,并将异常作为字符串返回,以防它失败。然后你可以准确地检查什么是错误

标签: date reporting-services reportbuilder3.0


【解决方案1】:

我在 ReportBuilder 中尝试了以下表达式,效果很好……

=DateAdd(DateInterval.Day, -7,Today())

如果您仍然遇到错误,那么我建议您在报告中使用自定义代码创建一个函数,并传递日期值并从该函数返回预期值。用 Try Catch 块包装它,并将异常作为字符串返回,以防它失败。然后你可以准确地检查什么是错误。看看这里的功能...

' 在这样的表达式中调用下面的函数=Code.SubstractDate(YourDateValue)

Function SubstractDate(InputDate As DateTime) As String
Try
   Return =DateAdd(DateInterval.Day, -7,InputDate).ToString() ' Use your own format as you like
Catch ex as Exception
 Return ex.Message
End Function

【讨论】:

    【解决方案2】:

    添加更多关于 DateAdd 函数的信息:

    要获取前一周的日期,只需在函数中减少 7 天(添加数字 -7),如:

    =DateAdd(DateInterval.Day, -7,Today())
    

    您可以按如下所示的类似方式添加/减少年、季月等。只需将数字更改为所需的长度

    =DateAdd(DateInterval.Year,-1,Today())
    
    =DateAdd(DateInterval.Quarter,-1,Today())
    
    =DateAdd(DateInterval.Month,-1,Today())
    
    =DateAdd(DateInterval.DayOfYear,-1,Today())
    
    =DateAdd(DateInterval.WeekOfYear,-1,Today())
    
    =DateAdd(DateInterval.WeekDay,-1,Today())
    
    =DateAdd(DateInterval.Hour,-1,Today())
    
    =DateAdd(DateInterval.Minute,-1,Today())
    
    =DateAdd(DateInterval.Second,-1,Today())
    

    【讨论】:

      【解决方案3】:

      我认为将 K D 的答案 DateInterval.Day 替换为 "d" 并将 Today() 替换为 FORMAT(Cdate(today), "MM/dd/yyyy") 会有所帮助

      【讨论】:

        猜你喜欢
        • 2012-04-29
        • 2017-04-28
        • 2013-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-06
        • 1970-01-01
        相关资源
        最近更新 更多