sql - SSRS 未显示日期范围内的所有数据
问题描述
您好,我正在使用 SQL 创建一个报告,显示日期范围之间的 tranx 信息。但我有一个有趣的问题,我将用下表说明
按 | 地位 | 日期 |
---|---|---|
AB | 开始 | 2021 年 8 月 1 日 |
AB | 质量检查 | 2021 年 8 月 2 日 |
AB | 下 | 2021 年 8 月 2 日 |
AB | 开始 | 2021 年 8 月 3 日 |
AB | 休息 | 2021 年 8 月 5 日 |
AB | 没有数据 | 2021 年 8 月 7 日 |
AB | 开始 | 2021 年 8 月 7 日 |
AB | 结尾 | 2021 年 8 月 10 日 |
我有一个类似的代码:
Select Press, Status, Date
from Table
where Date >= @Date and Date <= @Date
在我的 Sql 开发人员环境中,当我输入 Date >= '08/01/2021' 和 Date <= '08/05/2021' 时,我会得到这个:
按 | 地位 | 日期 |
---|---|---|
AB | 开始 | 2021 年 8 月 1 日 |
AB | 质量检查 | 2021 年 8 月 2 日 |
AB | 下 | 2021 年 8 月 2 日 |
AB | 开始 | 2021 年 8 月 3 日 |
AB | 休息 | 2021 年 8 月 5 日 |
但在我的报告和 SSRS 中,我会得到:
按 | 地位 | 日期 |
---|---|---|
AB | 开始 | 2021 年 8 月 1 日 |
AB | 质量检查 | 2021 年 8 月 2 日 |
AB | 下 | 2021 年 8 月 2 日 |
AB | 开始 | 2021 年 8 月 3 日 |
正如您所注意到的,在 SSRS 中没有填充08/05/2021值,但在 SSRS 中,如果我将增加 >= 更改为一天"08/06/2021",我将看到显示08/05/2021值的结果。我在 SSRS 中做错了什么吗?
解决方案
Date
与您传入的变量相比,您的列的数据类型是什么?它们实际上都是数据类型date
,还是您正在转换/转换一个?以下代码在 SSMS 和 SSRS 中都按预期执行(尽管我不在 2008 年)。
DECLARE @t1 TABLE (Press VARCHAR(10) NOT NULL, Status VARCHAR(20) NOT NULL, SDate DATE NOT NULL)
INSERT INTO @t1
VALUES
('AB', 'Start' ,'08/01/2021'),
('AB', 'QA Check', '08/02/2021'),
('AB', 'Down' ,'08/02/2021'),
('AB', 'Start' ,'08/03/2021'),
('AB', 'Break' ,'08/05/2021'),
('AB', 'No Data', '08/07/2021'),
('AB', 'Start', '08/07/2021'),
('AB', 'End' ,'08/10/2021')
Select Press, Status, SDate
from @t1
where SDate >='08/01/2021' and SDate <= '08/05/2021'
并且以下内容丢失了 08/05/2021 行,因为未指定时间是 12:00:00 AM:
DECLARE @t1 TABLE (Press VARCHAR(10) NOT NULL, Status VARCHAR(20) NOT NULL, SDate DATETIME NOT NULL)
INSERT INTO @t1
VALUES
('AB', 'Start' ,'08/01/2021 5:00:00 AM'),
('AB', 'QA Check', '08/02/2021 5:00:00 AM'),
('AB', 'Down' ,'08/02/2021 5:00:00 AM'),
('AB', 'Start' ,'08/03/2021 5:00:00 AM'),
('AB', 'Break' ,'08/05/2021 5:00:00 AM'),
('AB', 'No Data', '08/07/2021 5:00:00 AM'),
('AB', 'Start', '08/07/2021 5:00:00 AM'),
('AB', 'End' ,'08/10/2021 5:00:00 AM')
Select Press, Status, SDate
from @t1
where SDate >='08/01/2021' and SDate <= '08/05/2021'
推荐阅读
- terraform - 在 required_providers 中设置了提供程序版本,但 terraform 仍然抱怨
- javascript - 是否可以在打印过程中更改 SVG 圆的 cx、cy 和 r?
- vb.net - VB.Net - 即使在 Outlook 关闭时也能阅读电子邮件
- r - R(rvest)中列不一致时如何获取html表数据
- c# - C# 验证 JSON 输入
- python - python os.fork() 用于在降级凭据下执行操作
- c++ - 如何使用 c/cpp 从其线程中杀死进程?
- python - 如何从 python 中的样本中获得最可能的 68%?
- gcc - gcc:-march=native 和 -march= 之间的区别
- api - 获取相关资源的 REST 方式是什么?