我试图制作一个表达式,如果时间是上午12点,只显示日期,如果时间不是12点,将显示日期/时间。
我是SSRS
的新手,所以我不确定如何解决这个问题。任何帮助将不胜感激。
答案 0 :(得分:1)
我认为从SSRS的角度来看,这样的事情会有所帮助。在文本框中输入此表达式。
=IIF( TimeValue(Fields!DateField.Value) = "12:00:00 AM",
FORMAT(Fields!DateField.Value, "MM/dd/yyyy"),
Fields!DateField.Value)
这假设你有正确的数据类型。
答案 1 :(得分:0)
该解决方案涉及将日期时间值作为时间转换为另一个变量并仅检查该部分。按原样运行下面的解决方案将产生“00:00:00”时间值。如果注释掉第一行并取消注释第二行,则getdate()函数将返回一个特定的时间值,您将看到整个DATETIME字符串。
DECLARE @v_datetime DATETIME = '2018-04-30' --- no time
--DECLARE @v_datetime DATETIME = GETDATE() --- includes time
DECLARE @v_time TIME = CAST(@v_datetime AS TIME)
IF @v_time = '00:00:00' BEGIN
SELECT CAST(@v_datetime AS DATE) Result
END
ELSE BEGIN
SELECT @v_datetime Result
END
答案 2 :(得分:0)
在相关文本框的格式字段中输入以下代码,并将DATEFIELD替换为您的字段名称:
=Switch(Hour(Fields!DATEFIELD.Value)=cint(0) And Minute(Fields!DATEFIELD.Value)=cint(0) And Second(Fields!DATEFIELD.Value)=cint(0),"dd/MM/yyyy",
True,"dd/MM/yyyy HH:mm:ss")