具有多个条件的SQL查询

时间:2019-01-30 23:27:18

标签: sql sql-server tsql

我有一个查询,可以总结一个月的时间,但是我有一个条件使查询变得困难。

在我们的过程之前,是要总结整个月,但是由于更改,我需要实现这一新条件。新的条件是我需要搜索2019年1月1日至2019年1月6日,直到11PM,然后该月的其余时间直到10PM。

基本上,我需要将1月1日至6日汇总到11PM,然后将1月7日至1月31日汇总至10PM,然后添加两个结果。

SELECT  timeStamp, exit_coilid, exit_gaptime, new_gaptime, exit_width
FROM exitCoilData
JOIN NewGapTime
ON exitCoilData.exit_Coilid = NewGapTime.coilid
WHERE (
    timeStamp > ('1/1/2019') 
    AND 
    timeStamp <= ('1/6/2019 11:00PM')
    )
AND
    (
    timeStamp > ('1/7/2019 10:00PM') 
    AND 
    timeStamp <= DATEADD("m",1, '1/1/2019 10:00PM')
    )

2 个答案:

答案 0 :(得分:0)

写2个查询,使用不同的日期并使用“ UNION”,这两个查询中必须返回相同数量的字段和类型

SELECT firstName, lastName, company FROM businessContacts
UNION
SELECT firstName, lastName, NULL FROM nonBusinessContacts

答案 1 :(得分:0)

使用WHERE可以简化您的BETWEEN子句(更易于阅读:))。另外,正如已经提到的,您只需要OR运算符(我使用的是我更熟悉的日期格式,但是与答案无关):

WHERE timeStamp BETWEEN '2019-01-01 00:00:00' AND '2019-01-06 23:00:00'
   OR timeStamp BETWEEN '2019-01-07 00:00:00' AND '2019-01-31 22:00:00'