我有这个查询,它将从SQL Server返回一个日期
SELECT TOP 1
CASE
WHEN (SELECT TOP 1 CONVERT(DATE, [Duedate]) AS [Duedate]
FROM [dbo].[Table1]
WHERE CONVERT(DATE, [Duedate]) = CONVERT(DATE, GETDATE())) = CONVERT(DATE, GETDATE())
THEN CONVERT(DATE, GETDATE())
ELSE (SELECT TOP 1 CONVERT(DATE, [Duedate])
FROM [dbo].[Table1]
WHERE CONVERT(DATE, [Duedate]) > CONVERT(DATE, GETDATE())
ORDER BY CONVERT(DATE, [Duedate]) ASC)
END AS [ReturnRequiredDate]
FROM
[dbo].[Table1]
但是,当我尝试将其添加到SSRS报表中的数据集中时,它将返回日期和时间格式。该如何解决?
其次,我想根据此返回日期(即前一天&包括返回日期)填充表格列/行的背景颜色。
也就是说,根据情况,如果日期返回到每个月的16日,则填充的颜色应该是从16日到前几天。
也可以说,如果返回的日期是任何月份的27号,则应从27号开始填充颜色到以前的记录(以前的日期记录) 如何使用SSRS表达式执行此操作?
使用查询,在所有日期中,我可以返回[ReturnRequiredDate]之前的所有日期。有什么方法可以只为返回的日期填充颜色吗?在同一个SSRS表中(我的所有记录都在其中)。我不想在SSRS中使用单独的表格进行颜色填充。
希望我已经清楚地解释了规则,如果没有,请让我知道以修改问题。谢谢。
答案 0 :(得分:0)
以datetime
返回的日期有什么问题?如果需要对其进行计算,则2019-05-17
在功能上等效于2019-05-17 00:00:00.0000000
。如果您需要将其仅显示为日期,请在报表中的文本框属性或表达式中使用formatting,例如:=format(Fields!ReturnRequiredDate.Value,"yyyy-MM-dd")
同样,您只需要将数据驱动的表达式应用于文本框背景色属性,该属性包含检查值是否小于参数date的数据:
=iif(Fields!YourDate.Value <= first(Fields!ReturnRequiredDate.Value,"YourDataset"),"Red","Black")