0

全部,

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

Date:

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

状态码:

状态码不在 ('58','59'))

如果排除同时满足这两个条件的数据,我的陈述会是什么样子?我所做的一切都排除了该日期范围内的所有内容和状态代码范围内的所有内容。

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

4

2 回答 2

0

在我看来,你有点想多了,让它变得比它需要的更复杂。让它变得如此复杂,尤其是在负逻辑的情况下,也会使其表现不佳。

怎么样:

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

不确定您使用的是什么数据库,或者您的数据类型到底是什么 - 根据需要稍微调整,但尽量远离令人讨厌的日期/字符串转换和“NOT”条件。

于 2012-05-11T02:39:54.303 回答
0

尝试这个

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

让我知道。

于 2012-05-11T02:58:42.233 回答