SSRS中的日期格式问题

时间:2011-12-04 08:28:23

标签: vb.net date reporting-services

我的SSRS中存在日期格式问题。我将日期从DateTimePicker保存到数据库。从那里我使用以下

在我的datagridview中显示
dgv.items(0,2).value=Format(Cdate(dsSaver.tblInv.rows(0).items(0)),"dd-MMM-yyyy")

这会正确显示(04-Nov-2011),但是当我使用

将同一数据库中的日期发送到我的SSRS时
="Dated: " &Format(cdate(Fields!InvDate.Value),"dd-MMM-yyyy")

它显示为11-Apr-2011.

我已经测试了所有winforms票价,但是所有SSRS都显示错误。 请指教。

2 个答案:

答案 0 :(得分:4)

这里发生了一些事情。正确保存日期,但由于您的格式选项,日期显示不正确。这条线很成问题:

="Dated: " & Format(cdate(Fields!InvDate.Value), "dd-MMM-yyyy") 

CDate获取一个值,通常是一个字符串,然后将其转换为日期,然后将其格式化为字符串。现在,默认情况下,报告设置为将其Language属性设置为English (United States),因此CDate函数将日期04-Nov-2011的字符串表示形式转换为04/11/2011,然后使用美国格式MM-dd-yyyy(不是巴基斯坦人)成为约会11-Apr-2011,因为它认为月份是第一位的。

因此,您应该将报告的语言设置更改为=User!Language,以便它支持用户的语言,并对内容进行适当的格式化。这可能足以使您的表达工作。

无论如何,如果Fields!InvDate.Value作为日期字段提供(应该是),则不需要CDate函数,这应该有效:

="Dated: " & Format(Fields!InvDate.Value, "dd-MMM-yyyy") 

还有FormatDateTime功能,但遗憾的是它不支持您要使用的格式。

答案 1 :(得分:0)

您是否查看过Formatting a Report: Format the Date的RDLC选项?