/ /特定の時刻間の日数を計算する - sql、datetime

特定の時刻間の日数を計算する - sql、datetime

私のテーブルは以下の通りです。私は、午後9時30分から翌日午後1時までの間、すべての記録を見つける必要があります。私は複数の日を渡すことができるので、日付と時刻をハードコードすることはできません。

    Admit Date
2015-12-30 09:51:16.000
2015-12-30 10:15:00.000
2015-12-30 10:51:00.000
2015-12-30 11:19:00.000
2015-12-30 12:12:00.000
2015-12-30 12:28:00.000
2015-12-30 12:36:00.000
2015-12-30 13:27:54.000
2015-12-30 14:03:00.000
2015-12-30 14:10:00.000
2015-12-30 14:21:00.000
2015-12-30 14:37:00.000
2015-12-30 15:42:00.000
2015-12-30 15:56:00.000
2015-12-30 17:43:00.000
2015-12-30 17:47:51.000
2015-12-30 18:04:00.000
2015-12-30 18:40:00.000
2015-12-30 18:45:02.000
2015-12-30 20:44:00.000
2015-12-30 20:52:00.000
2015-12-30 21:23:00.000
2015-12-30 22:26:00.000
2015-12-30 23:17:00.000
2015-12-31 01:37:00.000
2015-12-31 08:20:00.000
2015-12-31 09:17:00.000
2015-12-31 09:53:07.000
2015-12-31 10:15:00.000
2015-12-31 12:01:00.000
2015-12-31 12:09:00.000
2015-12-31 12:12:00.000
2015-12-31 12:17:18.000
2015-12-31 12:18:00.000
2015-12-31 12:23:00.000
2015-12-31 12:23:00.000
2015-12-31 12:40:00.000
2015-12-31 12:53:00.000
2015-12-31 13:09:40.000
2015-12-31 13:28:00.000
2015-12-31 13:38:12.000
2015-12-31 13:39:01.000
2015-12-31 14:51:29.000
2015-12-31 14:57:11.000
2015-12-31 16:06:00.000
2015-12-31 16:13:00.000
2015-12-31 17:22:00.000
2015-12-31 18:07:00.000
2015-12-31 18:24:02.000
2015-12-31 19:38:00.000
2015-12-31 19:53:00.000
2015-12-31 21:01:00.000
2015-12-31 21:26:00.000
2015-12-31 21:46:00.000
2015-12-31 22:20:00.000
2015-12-31 23:03:00.000
2015-12-31 23:34:00.000
2016-01-01 00:16:00.000
2016-01-01 01:03:00.000
2016-01-01 01:19:00.000
2016-01-01 01:30:00.000
2016-01-01 03:21:00.000
2016-01-01 05:33:00.000
2016-01-01 06:07:00.000
2016-01-01 08:03:00.000
2016-01-01 08:33:00.000
2016-01-01 08:35:00.000
2016-01-01 09:09:00.000
2016-01-01 09:42:00.000
2016-01-01 10:02:00.000
2016-01-01 11:12:08.000
2016-01-01 12:06:00.000
2016-01-01 12:47:00.000
2016-01-01 13:11:31.000
2016-01-01 14:22:00.000
2016-01-01 16:49:00.000
2016-01-01 18:39:00.000
2016-01-01 18:54:00.000
2016-01-01 19:16:00.000
2016-01-01 19:51:00.000
2016-01-01 20:15:00.000
2016-01-01 20:27:00.000
2016-01-01 20:27:00.000
2016-01-01 21:06:00.000
2016-01-01 21:06:00.000
2016-01-01 21:39:00.000
2016-01-01 21:58:00.000
2016-01-01 22:15:00.000
2016-01-01 22:16:00.000
2016-01-01 22:43:00.000
2016-01-01 22:54:00.000
2016-01-01 23:06:00.000
2016-01-01 23:10:00.000

私は複数の日に渡ってデータを取得する必要があります

回答:

回答№1は1

これは、時間が午後9時30分または午後1時またはそれより前の(基本的にこれらの2回の間に発生した)すべての日付をリストに表示します。

SELECT admit_date
FROM admit
WHERE CONVERT(time,admit_date) >= CONVERT(time,"21:30")
OR CONVERT(time,admit_date) <= CONVERT(time,"13:00")

case文でこのロジックを使用して、これらの日付を分類するのに役立つ他のインジケータを生成することもできます。


回答№2の場合は0

CTEでは値をマッピングするためにいくつかの列のマークを外し、CTEの外にはこの値を選択することができます。

また、LAST関数またはOracle LAST_VALUEを使用して、最後の列まで値を抽出するAgregate関数を実行することもできます。

それがあなたを助けることを願っています