8

我的任务是增加以下代码以显示没有秒数的时间,并使用 AM/PM:

=IIF(Fields!New_Date.Value <> "NO CHANGE", FormatDateTime(IIF(Fields!New_Date.Value = "NO CHANGE","1/1/12",Fields!New_Date.Value),DateFormat.ShortDate), "") &
IIF(Fields!New_Time.Value <> "NO CHANGE",FormatDateTime(IIF(Fields!New_Time.Value = "NO CHANGE","00:00",Fields!New_Time.Value),DateFormat.ShortTime), "")

在意识到 FormatDateTime 不足以满足我的要求时,我发现以下内容不起作用(仅查看与时间字段相关的片段),:

Format(IIF(Fields!New_Time.Value = "NO CHANGE","00:00",Fields!New_Time.Value),"HH:mm tt")  

或这个

Format(IIF(Fields!New_Time.Value = "NO CHANGE","00:00",Fields!New_Time.Value),"HH:MM tt")

我从这里获取格式代码。

我究竟做错了什么?

4

4 回答 4

10

所以我发现,因为我实际上是在尝试格式化文本框,SSRS 从来没有真正“知道”它是一个时间字段。虽然我不是 100% 确定我的推理是正确的,但它确实解释了为什么以下工作:

Format(CDate(IIF(Fields!New_Time.Value = "NO CHANGE","00:00",Fields!New_Time.Value)),"hh:mm tt")
于 2013-02-20T15:16:55.307 回答
10

如果您的数据在简单的文本框(或表格单元格)中,那么您有更轻松的解决方案。

右键单击文本框>属性:

使用以下内容: 在此处输入图像描述

于 2013-02-20T17:20:07.667 回答
7

其他答案是正确的,但了解格式的关键区别是:

 h:mm tt --> 12-hour clock (e.g. 5:30 PM)
hh:mm tt --> 12-hour clock with a leading zero, if necessary (e.g. 05:30 PM)
 H:mm    --> 24-hour clock (e.g. 1:30 for 1:30 AM)
HH:mm    --> 24-hour clock with a leading zero, if necessary (e.g. 01:30 for 1:30 AM)
于 2018-03-29T14:27:16.290 回答
4

从文本框属性->数字->自定义类别:

尝试输入:

dd-MMM-yy hh:mm tt

于 2014-03-21T01:57:02.683 回答