在SSRS报表中显示日期为MM-dd-yyyy格式

18

我有一个SQL查询:select ModifiedDate from Person.Person,它以2/24/1998 12:00:00 AM的格式返回日期。

我想在SSRS报告中以MM/dd/yyyy格式显示它。我使用了表达式=Format(Fields!ModifiedDate.Value,"MM/dd/yyyy")

但是,它仍然以2/24/1998 12:00:00 AM的格式出现。

我想要以2/24/1998的格式显示它。

我该如何做到这一点?


3
所以你想要将日期设置为 MM-dd-yyyy 格式。那么为什么要尝试将其格式化为 MM/dd/yyyy 呢? - Pedram
8个回答

23

我建议使用格式代码:

右键单击单元格属性,选择格式,点击省略号“...”,然后您可以从那里查看日期格式。当您确认对话框时,它将被转换为日期代码。这很有用,因为它以用户想要看到的格式设置日期。

要在SSRS中转换数据而不是数据源,您可以尝试使用类似以下内容的东西:

=Format(Cdate(Fields!ModifiedDate.Value),"dd/MM/yyyy")

没有Cdate的另一个示例:

=Format(Fields!ModifiedDate.Value,"dd/MM/yyyy")

什么是SSS,如果您能详细说明将会很有帮助。 - Gaurav Parek
这只是一个错误的字段名称,我会编辑它以使其更清晰。 - n34_panda

10

在SSRS中有一个专门用于格式化日期的函数:

=FormatDateTime(Fields!ModifiedDate.Value, DateFormat.ShortDate)

它将以您想要的方式返回日期。


5

根据您的问题,

要在SSRS中转换日期,您可以尝试以下方法:

=FORMAT(Fields!ModifiedDate.Value,"MM-dd-yyyy")

输出会是以下内容,
12-06-2010 -- 12(Month)-06(Date)-2010(Year)

3

将整个报告的语言设置为运行报告所在国家的语言。

例如,对于美国,它是en_US,而对于澳大利亚,它是en_AU。

非常简单!


1
我不明白为什么这会让SSRS从常规日期切换到短日期。[编辑]解释一下? - Nathan Tuggy
3
我认为这很有用,因为它解决了美国和英国日期格式的问题。仅仅更改报告语言意味着他可以在日期字段上使用 .net 日期格式“d”。 - Scrot Heed

2
我曾遇到过这个问题,我通过以下代码解决了它:
FormatDateTime('MM/dd/yyyy',ADOqueryname.fieldbyname('ModifiedDate').AsDateTime);

2
如果您想以“MM/DD/YYYY”格式获取日期,请使用以下查询,并且您需要将其转换为varchar数据类型。
select CONVERT(varchar(20),GETDATE(),101)

3
请考虑改进您的回答,加入一些解释有助于那些不仅寻求答案而且想理解它的人。 - user692942

1

我做了两件事情使它工作:

第一,在数据集属性查询中 - select CONVERT(varchar(20),ModifiedDate,101) from Person.Person

第二,在表达式中 - =Format(Fields!ModifiedDate.Value,"dd/MM/yyyy")

这对我有用。感谢提示。


0

您可以使用:

- FormatDateTime(Fields!ModifiedDate.Value, 2)

或者:

- FormatDateTime(Fields!ModifiedDate.Value, DateFormat.ShortDate)

你将会得到相同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接