-1

where 句を使用してテーブルからデータを選択する必要があります。シナリオはこちらです。2 月の 20:00 から翌朝 08:00 までのデータを表示したいです。どうすればデータを選択できますか?返信してください

4

2 に答える 2

1

1 つの方法を次に示します。

select *
from t
where hour(t.datetime + 4.0/24) between 0 and 11 and
      month(t.datetime + 4.0/24) = 2;

1 月 31 日の午後 9 時を 2 月に含めると仮定すると、これは日付に 4 時間を追加します。本当に 3 月 1 日の午前 1 時を含めたい場合は、20 時間を引きます。

select *
from t
where hour(t.datetime - 20.0/24) between 0 and 11 and
      month(t.datetime - 20.0/24) = 2;

ところで、時間の状態を次のように表現することもできます。

where (hour(t.datetime) >= 20 or hour(t.datetime) < 8);
于 2013-08-29T11:38:25.437 に答える
0

多分

...
WHERE(  DATEPART(month, DateCol) = 2
   AND( DATEPART(hour,  DateCol) >= 20 OR DATEPART(hour, DateCol) <= 8 )
OR  (   DATEPART(month, DateCol) = 3 
   AND  DATEPART(day,   DateCol) = 1
   AND  DATEPART(hour,  DateCol) <= 8));
于 2013-08-29T11:41:00.413 に答える