23

日時として「作成済み」列を持つテーブルがあります。

Created 値の時間が 2 回の間にあるかどうかを確認するクエリを実行しようとしています。

最初の行の Created datetime は '2013-07-01 00:00:00.000' (真夜中) で、午後 11 時から午前 7 時までの時間のアイテムをクエリしようとしています。

select *
from MyTable
where CAST(Created as time) between '23:00:00' and '06:59:59'

しかし、結果は返されません。

時間を日時に変換する必要がありますか?

4

8 に答える 8

48

午後 11 時以降または午前 7 時であることを確認する必要があると思われます。

select *
from MyTable
where CAST(Created as time) >= '23:00:00' 
   or CAST(Created as time) < '07:00:00'
于 2013-07-01T14:58:21.697 に答える
12
select *
from MyTable
where CAST(Created as time) not between '07:00' and '22:59:59 997'
于 2013-07-01T15:17:47.933 に答える
-2

OR ではなく AND にする必要があります

select *
from MyTable
where CAST(Created as time) >= '23:00:00' 
   AND CAST(Created as time) < '07:00:00'
于 2016-10-03T22:27:33.067 に答える