【问题标题】:Report Builder 3.0: How to convert string representation of dates in mm/dd/yy format using CDateReport Builder 3.0:如何使用 CDate 以 mm/dd/yy 格式转换日期的字符串表示形式
【发布时间】:2012-04-01 03:00:39
【问题描述】:

我正在使用 Report Builder 3.0 构建报告。

我正在使用的源系统具有以mm/dd/yy 格式表示日期的字符串,但我想将其作为dd-MMM-yy 显示给最终用户。在字符串上使用CDate 会出错,因为它会以dd/mm/yy 格式(美国区域设置)解释字符串。

有没有办法在不更改区域设置的情况下将字符串正确转换为日期(这不是一个真正的选项)?

谢谢!

【问题讨论】:

    标签: date reporting-services reportbuilder string-conversion regional-settings


    【解决方案1】:

    您可以使用Format 命令并指定您需要的确切格式。例如:

    =Format(Cdate(Fields!Date.Value),"dd-MM-yyyy")
    

    或者你可以试试这个:

    =Day(Fields!Date.Value) & "/" & Month(Fields!Date.Value) & "/" & Year(Fields!Date.Value)
    

    编辑:没关系:

    =Cdate(Mid(Fields!Date.Value,4,2) & "/" & Mid(Fields!Date.Value,1,2) & "/" & Mid(Fields!Date.Value,7,4))
    

    【讨论】:

    • 如果日期字段不是“dd/mm/yyyy”格式,CDate 将返回错误。例如,如果我有“01/15/2012”,CDate 会认为月份字段为“15”并抛出错误。
    • 这给出了相同的结果,因为 DayMonthYear 期望各自的值是“dd-mm-yyyy”格式。 Month 将始终检查字符串的中间部分以获取月份值...
    • 知道了。那么,你要转换的字段是字符串吗?为什么不把它当作一个字符串来操作来得到你想要的呢?假设您有一个日期“02/23/2011”,我建议您这样做:Cdate(Mid(Fields!Date.Value,4,5) & "/" & Mid(Fields!Date.Value,1,2) & "/" & Mid(Fields!Date.Value,7,10))
    • 只是想做一个修改:Mid(Fields!Date.Value,4,5) 实际上应该是 Mid(Fields!Date.Value,4,2) (与其他 Mid 调用相同) .第三个参数是要抓取的字符数,不是字符串的结束位置。
    • 是的,您是对的,对此感到抱歉。我正在按照您的建议再次编辑答案。抱歉,感谢您指出!
    猜你喜欢
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多