0

我有这个查询,它将从 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 中使用单独的表格进行颜色填充。

希望我已经清楚地解释了规则,如果没有,请告诉我修改问题。谢谢。

4

1 回答 1

0

第一个问题

返回日期的问题是datetime什么?如果您需要对其进行计算,2019-05-17则在功能上等同于2019-05-17 00:00:00.0000000. 如果您只需要将其显示为日期,请在报告中使用格式,无论是在文本框属性中还是在表达式中,例如:=format(Fields!ReturnRequiredDate.Value,"yyyy-MM-dd")

第二个问题

同样,您只需要将数据驱动表达式应用于包含检查值是否小于参数日期的数据的文本框背景颜色属性:

=iif(Fields!YourDate.Value <= first(Fields!ReturnRequiredDate.Value,"YourDataset"),"Red","Black")
于 2019-05-17T08:38:44.990 回答