如何处理 SSRS 报告中的英国日期格式字符串 (dd-mm-yyyy)?

How to handle UK date format string (dd-mm-yyyy) in SSRS report?

这应该是一个简单的问题,但令人惊讶的是我找不到有用的答案,所以请耐心等待。

所以我从 SQL 中获取日期字符串 (dd-mm-yyyy) 并且因为列是 nvarchar 所以我得到的是字符串数据类型。

我需要的是将其转换为日期数据类型,令人惊讶的是它比我在 SSRS 报告中想象的要难。似乎没有任何内置函数可以轻松处理 UK 格式日期字符串。

例如,如果我做 CDate("26/03/2018") 它会很好地转换,但如果我做 CDate("03/26/2018") 它会给我错误。

我目前的解决方案是转换 SQL 中的类型,但我不想处理 SQL 中的表示。

我尝试更改 SSRS 中的语言文化和日历,但 none 成功了。

在我看来,转换 SQL 中的日期是迄今为止最好的方法。人们对应该在表示层中放置什么感到困惑,但这无论如何都不是表示,您正在修改数据。

无论如何,如果你真的想在 SSRS 中这样做,你可以用这样的东西

=DateSerial(
            RIGHT(Fields!myUKDate.Value,4),                
            MID(Fields!myUKDate.Value,4,2),
            LEFT(Fields!myUKDate.Value,2)
)