【问题标题】:Have issues with DateTime Parameter on SSIS ProjectSSIS 项目上的 DateTime 参数有问题
【发布时间】:2016-04-14 10:57:25
【问题描述】:

我的 SSIS 项目报告中的日期参数有问题。我需要查询按日期(今天的日期)注册的产品。以下是我正在传递的查询...

SELECT * FROM [Products] WHERE [CreatedDateTime] = @Date

在@Date 参数中,我将值指定为今天的日期,因此在默认值部分中,我传递了这个表达式'=Today()',它获取实际的日期。

现在我遇到的问题是,当我运行此报告时,即使结果在数据库中,它也不会返回任何结果。在运行了一些测试之后,当我意识到 dateTime 存储在我的数据库中的方式与我的 @Date 参数的执行方式不同时。例如:

在我的 Sql 服务器视图中,我有一个 CreatedDateTime 列,以这种格式存储日期:2016-04-14 08:58:07.140

在 SSIS 上,我的 @Date 仅按日期过滤,因此例如它只会在 2016-04-14 之前查询(仅按日期而不是时间),因此不会返回任何结果。

我通过添加一个文本框来按输入的日期进行过滤发现了这一点。当我只输入日期时,不会返回任何结果,但是当我输入日期和时间时,会返回结果。

除了 =Today() 之外,我是否可以在我的 @Date 参数中传递一种方法,该方法适用于我的情况并且仅按日期过滤?

感谢您的宝贵时间。

【问题讨论】:

    标签: tsql ssis


    【解决方案1】:

    我终于在以下帮助下找到了解决方案: this link

    所以我像这样更改了我的 sql 语句:

    SELECT * FROM [Products] WHERE CAST([CreatedDateTime] AS DATE) = @Date
    

    它成功了!

    【讨论】:

    • 那是因为您遇到了 SQL 问题,而不是 SSIS 问题。您正在将仅日期值与也包含时间的值进行比较。仅当时间部分为 00:00 时,它们才会匹配
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2015-10-01
    • 2013-10-30
    • 2020-12-04
    • 1970-01-01
    • 2014-09-23
    相关资源
    最近更新 更多