我的任务是扩充以下代码以显示没有秒的时间,以及使用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不足以满足我的目的时,我发现以下内容不起作用(仅查看与时间字段相关的snippit),
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")
我从here获取格式代码。
我做错了什么?
答案 0 :(得分:7)
所以我发现因为我本质上是在试图格式化文本框,所以SSRS从来没有真正“知道”这是一个时间字段。虽然我不是100%确定我的推理是正确的,但它确实解释了为什么以下有效:
Format(CDate(IIF(Fields!New_Time.Value = "NO CHANGE","00:00",Fields!New_Time.Value)),"hh:mm tt")
答案 1 :(得分:6)
如果您的数据位于简单文本框(或表格单元格)中,则您可以使用更简单的解决方案。
右键单击文本框&gt;属性:
使用以下内容:
答案 2 :(得分:4)
来自文本框属性 - &gt;数字 - &gt;自定义类别:
尝试输入:
dd-MMM-yy hh:mm tt
答案 3 :(得分:3)
其他答案是正确的,但与格式有关的主要区别是:
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)