如何在使用C#的Crystal Report中将日期时间格式转换为日期格式?

14

我正在开发C# Windows窗体应用程序,并使用Crystal Report报表。我从数据库中检索日期,但只想在报表中显示日期,有没有Crystal Report中的公式字段可以帮助我解决这个问题。谢谢提前。

8个回答

32

如果日期和时间是在字段中(而不是公式),您可以进行格式设置:

  1. 右键单击该字段->格式编辑器
  2. 日期和时间选项卡
  3. 选择所需的日期/时间格式(或单击自定义)

如果日期和时间是在公式中:

ToText({MyDate}, "dd-MMM-yyyy")
//Displays 31-Jan-2010
或者
ToText({MyDate}, "dd-MM-yyyy")
//Displays 31-01-2010
或者
ToText({MyDate}, "dd-MM-yy")
//Displays 31-01-10

etc...


//显示1月31日怎么样? - Hamza Rahman

25
在crystal report的公式字段中,有一个日期函数可用。在其中传递您的日期时间格式,您将仅获得日期。例如:Date({MyTable.dte_QDate})

3

如果需要在Crystal Report端进行格式设置。

简单的方法。

Crystal Report设计窗口->右键单击日期字段->格式化字段->根据您的需求自定义日期格式。

非常有效。


2
这个公式对我有效:
// Converts CR TimeDate format to AssignDate for WeightedAverageDate calculation.

Date( Year({DWN00500.BUDDT}), Month({DWN00500.BUDDT}), Day({DWN00500.BUDDT}) ) - CDate(1899, 12, 30)

1
在选择公式中尝试这个:
Date(Year({datetimefield}), Month({datetimefield}), Day({datetimefield}))

0
有时候,Crystal Reports无法将某个字段识别为日期格式,这时你可以添加一个公式并使用以下函数: Date({YourField}), 然后将其添加到报表中。现在,当你打开格式对象对话框时,你会发现日期格式化选项。

0
如果只是格式问题,可以使用 ToShortDateString()

-1

有很多方法可以做到这一点。你可以使用这里所描述的内容,或者你可以使用myDate.ToString("dd-MMM-yyyy");。在MSDN文档中,有很多关于这个主题的帮助。

你也可以编写自己的DateExtension类,这将允许你像这样进行操作:myDate.ToMyDateFormat();

    public static class DateTimeExtensions
    {
        public static DateTime ToMyDateFormat(this DateTime d)
        {
            return d.ToString("dd-MMM-yyyy");
        }
    }

用户明确要求使用 Crystal 语法;而不是 c#。 - Simon Hellings

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