添加日期和时间值? &安培;如何从一个查询的结果查询到另一个查询

时间:2017-06-08 15:05:23

标签: sql sql-server tsql getdate

我想要完成的是更新此查询以便能够像getdate函数一样自动拉出当前日期,这样日期就不必每天手动更新。

use n

select id, type, name, log_time , start_time , documents_created , pages_created, processed, processed_time  
from N_LF_OCR_LOG 
where 
--name like 'C-INV00410249%' -- CI11667474 (6).pdf' 
log_time between  '2017-3-07 00:00:00.000' and '2017-3-07 23:59:00.000'   
and documents_created <> 0 
or  ( documents_created is null and log_time between '2017-3-07 00:00:00.000' and '2017-3-07 23:59:00.000'  ) 
order by log_time

然后从执行的结果中,我想要另一个查询来查询这些结果,以便在以下时间显示: 来自TYPE列的任何结果&gt;名为'email ocr in type&amp;普遍生产' 'documents_created&amp; pages_created'数字不匹配。 (见下图)

enter image description here

同时报告是否缺少这些行'NULL'文件或少于7个文件。

1 个答案:

答案 0 :(得分:0)

这是在SO上发布时创建测试用例的好方法。 Link to your SQL query我将你的AND / OR布尔逻辑修改为我认为你想要完成的东西并添加了注释。

将当前日期添加到过滤器是通过表达式完成的:

  • 今天午夜是通过将getdate()转换为删除时间部分的日期来创建的

    CONVERT(date,getdate())

  • 今天晚上11:59有点复杂,但基本上将日期时间转换为浮动表示,删除时间部分并添加“23:59”的特定时间。回到它

    CONVERT(datetime,floor(CONVERT(float,getdate())))+&#39; 23:59:00&#39;

第2部分,我不相信您需要在结果之上创建另一个查询以获得您想要的内容。您只需添加其他条件,您就可以使用创建的过滤器过滤到所需的类型。

如果你想再次查询你的结果,你需要创建一个WITH子句,然后你可以执行&#34; second&#34;查询如下:

-- first query
WITH my_subquery as (
    SELECT 1 as num
    FROM tbl)

-- second query
SELECT max(num) 
FROM my_subquery

修改 根据要求,here是第一个查询的链接(没有类型过滤器和页面创建过滤器),here是第二个查询的链接(使用类型过滤器和页面创建过滤器)。