【问题标题】:Sorting the date column incorrectly in SSRS在 SSRS 中错误地对日期列进行排序
【发布时间】:2011-08-26 09:22:27
【问题描述】:

我有一个使用 SQL Server Reporting Services 生成报告的存储过程。存储过程返回结果并具有一个日期列。

现在我想以 2009 年 8 月 5 日 11:20:AM 格式显示日期,而不是显示 MM/DD/YYYY 所以我在存储过程 [select col1, col2 , cast(datecol as varchar(max) ...)]。这帮助我以我想要的正确格式显示日期,但列按文本(A-Z)而不是日期排序。

谁能告诉我我应该怎么做才能获得预期格式的日期,并且仍然能够像日期而不是字符串那样对列进行排序?

【问题讨论】:

    标签: sql-server tsql sql-server-2008 reporting-services


    【解决方案1】:

    以日期形式发送数据,并使用报告服务Format 方法更改其显示方式。

    请参阅this thread 了解要使用的参数说明

    所以你最终会使用这样的表达式:

    =Format(Fields!MyDateField,"MMM d yyyy, HH:mm tt")
    

    【讨论】:

    • 谢谢,是的,又找到了一个这样的 FormatDateTime() 函数。但是 Format() 肯定看起来好多了:)
    • @Anil - FormatDateTime 采用一些预设格式,例如ShortDate,而Format 允许对输出进行精细控制。
    • 这是一个很好的答案,但我不得不稍作修改以应对错误。更新如下 =Format(Fields!MyDateField.Value,"MMM d yyyy, HH:mm tt")
    【解决方案2】:

    =CDate(Fields!MyDateField.Value)

    您的报告中返回的值为“字符串”,CDate 将此字符串值转换为日期类型。这样做可以按此列正确排序为日期类型。

    【讨论】:

    • 欢迎来到 SO。如果你想被投票,你应该解释你的答案。
    猜你喜欢
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2014-05-20
    • 2012-12-08
    • 2020-06-24
    • 2015-04-25
    相关资源
    最近更新 更多