SQL查询在日期之间排除数据,也匹配另一个条件

时间:2012-05-11 02:20:47

标签: sql

所有

这里的第一次海报。我正在尝试创建一个查询,我想在日期范围之间排除数据,但也有一些代码。

Date:

(substring(CAST(UTCBigintToUTCTime(starttime) as varchar(19)),0,11) not between '2012-05-08%' and '2012-05-10%
  

状态代码:

     

状态代码不是('58','59'))

我的陈述会如何排除符合这些条件的数据?我所做的一切都将该日期范围内的所有内容排除在状态代码范围内。

提前致谢。 SQL新手,但学习:)。

2 个答案:

答案 0 :(得分:0)

在我看来,你过度思考它,并使它变得比它需要的更复杂。 使其变得复杂,特别是使用负面逻辑,也会使其表现不佳。

如下:

select * from myTable where starttime < '2012-05-08' and starttime > '2012-05-10' and statuscode < 58 and statuscode > 59

不确定您使用的是什么数据库,或者确切地说您的数据类型是什么 - 根据需要稍微调整一下,但尽可能远离讨厌的日期/字符串转换和“非”条件。

答案 1 :(得分:0)

试试这个

select * from myTable where convert(date,starttime) not between '2012-05-08' and '2012-05-10' and statuscode not in (58,59)

让我知道。