Sql server SSRS中的日期范围参数。将相同的日期值传递给@StartDate和@EndDate不会返回任何数据

Sql server SSRS中的日期范围参数。将相同的日期值传递给@StartDate和@EndDate不会返回任何数据,sql-server,reporting-services,ssrs-tablix,Sql Server,Reporting Services,Ssrs Tablix,SSRS报告的数据范围参数StartDate和EndDate指向DateTime列,格式为2020-07-05 08:00:00.287 当我在StartDate和EndDate中选择相同的日期时,比如说2020年5月10日,这一天的预期记录,但它没有返回/显示任何数据。当我检查并看到表中有可用的数据时 当前查询: 从表1中选择* 其中[DateTime]>=@StartDate和[DateTime]使用DATEADD函数增加1天,然后进行比较 在这个场景中,事务日期列中的基础数据是DATETI

SSRS报告的数据范围参数StartDate和EndDate指向DateTime列,格式为2020-07-05 08:00:00.287

当我在StartDate和EndDate中选择相同的日期时,比如说2020年5月10日,这一天的预期记录,但它没有返回/显示任何数据。当我检查并看到表中有可用的数据时

当前查询: 从表1中选择*
其中[DateTime]>=@StartDate和[DateTime]使用DATEADD函数增加1天,然后进行比较

在这个场景中,事务日期列中的基础数据是DATETIME值,我只需将参数增加1,并创建一个小于条件,如下所示:

    DECLARE @StartDate AS DATE
    DECLARE @EndDate AS DATE
    
    SET @StartDate = CAST(GETDATE() AS DATE)
    SET @EndDate = CAST(GETDATE() AS DATE)
    ;
    
 SELECT
    *
FROM
    favorite_table
WHERE
        1 = 1
    AND transactional_dt >= @StartDate
    AND transactional_dt  < DATEADD(d,1,@EndDate );
将@StartDate声明为日期
将@EndDate声明为日期
设置@StartDate=CAST(GETDATE()为日期)
设置@EndDate=CAST(GETDATE()为日期)
;
挑选
*
从…起
最爱的桌子
哪里
1 = 1
和事务\u dt>=@StartDate
和事务_dt
样本数据?您使用的日期范围是什么?您希望显示的日期是什么?这个查询也会有帮助。再读一遍你的评论,我想我明白你的意思了。起点和终点是10/5,你希望看到10/5吗?如果您的数据不是太大,我只需尝试一个
CAST
函数。因此,一个例子是…
WHERE CAST(DateTime作为日期)在@Start和@End之间进行转换
为了解释为什么会发生这种情况,日期被隐式转换为DateTime。所以它会过滤2020-05-10 00:00:00到2020-05-10 00:00:00之间的所有日期时间谢谢Patrick。成功了。想知道为什么[DateTime]介于'10/05/2020'和'10/05/2020'[DateTime]>='10/05/2020'和[DateTime]之间,因为DateTime列的值大于'10/05/2020'(例如,凌晨1点、凌晨2点),所以条件不会返回这些记录。有些人将DATETIME列转换为日期,然后应该按照您的预期工作(尽管性能可能会受到影响)。