-1

From dateTo Dateの 2 つの日付があります。

また、 From TimeTo Timeの 2 つの時間フィールドがあります。

データベースの日付フィールドは ですDatetime。日付と時刻の両方に従ってデータを選択する必要があります。

これは13:00 から 15:00 の間のデータを選択するための私のクエリですが、 20:00 から 08:00には適していません。

where Date>= '2/01/2012' AND Date<'2/28/2013' 
     AND CAST(Date AS TIME) BETWEEN '20:00' AND '08:00'
4

3 に答える 3

2

これはあなたが求めているものですか?

WHERE Date BETWEEN '2012-01-01 20:00:00.000' AND '2012-12-01 08:00:00.000'

WHERE 句の変数を動的に生成しようとしているかどうか、少し不明です。

于 2013-08-29T12:08:18.267 に答える
2

特定のエラー/予期しない結果が表示されない場合、問題は20 が 8 より大きいことだと思います。

次の 2 つの条件を使用する必要があります。

where Date>= '2/01/2012' AND Date<'2/28/2013' AND (CAST(Date AS TIME) > '20:00' OR CAST(Date AS TIME) < '08:00')

編集:固定条件

于 2013-08-29T12:06:02.533 に答える
0

「日付」と「時刻」の部分を組み合わせる必要があります。

このコードは、これを行う方法を示しています。

SELECT the_date
     , the_time
     , DateAdd(hh, DatePart(hh, the_time), the_date) As hour_added
     , DateAdd(mi, DatePart(mi, the_time), the_date) As minute_added
     , DateAdd(mi, DatePart(mi, the_time), DateAdd(hh, DatePart(hh, the_time), the_date)) As both_added
FROM   (
        SELECT Cast('2013-02-28' As datetime) As the_date
             , Cast('08:30' As datetime) As the_time
       ) As example

その後、比較で結果の値を使用できます

于 2013-08-29T12:08:45.667 に答える