【问题标题】:Date in calculated field not separating data计算字段中的日期不分隔数据
【发布时间】:2024-04-22 06:45:02
【问题描述】:

我要做的是列出特定表中的所有数据。我尝试了显示的这些代码 sn-ps,但我仍然从范围之外(2005 年等)获取数据

这是我第一次尝试

=IIF((Fields!APP_CREATE_DATETIME.Value >="{ts '2014-01-01 00:00:00'}") AND (Fields!APP_CREATE_DATETIME.Value > "{ts '2014-01-31 00:00:00'}"), Switch(Fields!DLR_NAME.Value, "JAN"), nothing)

那么这个

=IIF((Fields!APP_CREATE_DATETIME.Value >="2014-01-01 00:00:00") AND (Fields!APP_CREATE_DATETIME.Value > "2014-01-31 00:00:00"), Switch(Fields!DLR_NAME.Value, "JAN"), nothing)

表本身的SQL列是DATETIME格式

【问题讨论】:

    标签: tsql reporting-services visual-studio-2005


    【解决方案1】:

    我不确定您要在那里做什么,但这不是 Switch() 的正确语法

    =SWITCH(Conditional1, Result1,
        Conditional2, Result2,
        Conditional3, Result3
    )
    

    我认为在桌子上设置两个过滤器会更容易。一个大于开始日期,另一个小于结束日期。它会更容易理解和维护。但这主要是因为如果 SWITCH() 实际上没有做任何事情,它似乎是一个简单的日期范围过滤。


    我建议使用DateSerial() 函数来生成日期,而不是依赖于尝试正确转换字符串值。否则你需要使用CDATE() 函数来转换字符串,但是字符串日期对我来说总是有点不可靠。

    =DateSerial(1970,1,1)
    

    =Cdate("1970-01-01")
    

    【讨论】:

    • 你是对的。我省略了开关,因为它毫无价值。我想我的问题是如何格式化过滤器的日期。因为我得到了无法比较 System.DateTime 和 System.String 类型的数据错误,即使我输入了 DATETIME 格式的值
    • 更新了有关字符串到日期转换的信息。
    • 谢谢。日期序列工作。尽管看起来像一个日期,但它仍然被认为是一个字符串。
    最近更新 更多