【问题标题】:ErrorDate parameters formatting ssrs to stored procedure?ErrorDate参数将ssrs格式化为存储过程?
【发布时间】:2021-10-25 09:41:08
【问题描述】:

我的参数从 SSRS 传递到我的存储过程时遇到问题。

我有一个美国格式的日期,MM-dd-yyyy,在 SSRS 中,它以 dd-MM-yyyy 传递。

在我从存储过程中选择的下方:

SELECT 
    tt.[sourceId] AS 'id',
    'Ticket',
    tt.[sourceId], 
    tt.[date_create], tt.[date_mod], tt.[date_close], tt.[date_solve],
    tt.[entityId],
    tt.[name],
    tt.[date], tt.[status],
    tt.[content_PlainText], 
    tt.[type],
    tt.[urgency],
    tt.[impact],
    tt.[priority],
    tt.[userId_lastUpdater],
    tt.[userId_recipient],
    tu.[sourceId],
    tu.[name], tu.[LastName], tu.[firstName],
    tu.[profileId], 
    tu.[entitieId],
    tc.[sourceId],
    tc.[completename],
    tc.[name],
    tc.[address],
    tc.[postcode],
    tc.[town],
    tc.[state],
    tc.[country],
    tc.[phonenumber],
    tc.[email],
    tc.[admin_email],
    tc.[admin_name],
    tst.[sourceId],
    tst.[statusText]
FROM 
    ticket_tickets tt
LEFT JOIN 
    ticket_users tu ON tt.userId_recipient = tu.sourceId
LEFT JOIN 
    ticket_company tc ON tu.entitieId = tc.sourceId
LEFT JOIN 
    ticket_status tst ON tt.status = tst.sourceId
WHERE
    tc.name = @flt_client 
    AND (tt.date BETWEEN @flt_StartDate AND @flt_EndDate) 

代码参数转换:

=CDate(Parameters!flt_StartDate.Value).ToString("MM-dd-yy")

您知道在 SSRS 参数中将欧盟日期格式转换为美国日期格式吗?

【问题讨论】:

  • 如果这两种类型实际上都是 Date 或 DateTime ,则不要将它们转换为字符串。日期的格式("MM-dd-yy""dd-MM-yy""yyyyMMdd" 等)只是输出格式,在内部,日期类型列只是一个日期。
  • 是的,但是如果没有任何变化,则结果为 0 .... ?
  • 编辑您的问题,说明每个字段/列/变量/SSRS 参数的数据类型。如果可能,请显示数据库中的原始数据样本,包括 ticket_tickets.date 列
  • 我自己找到了解决方案:)

标签: sql reporting-services reportbuilder powerbi-paginated-reports


【解决方案1】:

将输入的 StartDate 和 EndDate 日期时间转换为存储过程中的日期

【讨论】:

    猜你喜欢
    • 2018-10-31
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多