0

全て、

初ポスターはこちら。日付範囲間のデータを除外したいクエリを作成しようとしていますが、特定のコードも持っています。

Date:

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

ステータス コード:

statuscode NOT IN ('58','59'))

これらの条件の両方を満たすデータを除外するステートメントはどのようになりますか? 私が行うことはすべて、その日付範囲とステータス コード範囲のすべてを除外します。

前もって感謝します。SQLの初心者ですが、学習しています:)。

4

2 に答える 2

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 に答える
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 に答える