所有
这里的第一次海报。我正在尝试创建一个查询,我想在日期范围之间排除数据,但也有一些代码。
Date:
(substring(CAST(UTCBigintToUTCTime(starttime) as varchar(19)),0,11) not between '2012-05-08%' and '2012-05-10%
状态代码:
状态代码不是('58','59'))
我的陈述会如何排除符合这些条件的数据?我所做的一切都将该日期范围内的所有内容排除在状态代码范围内。
提前致谢。 SQL新手,但学习:)。
答案 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)
让我知道。