2016-03-28 51 views
0

我的表格如下。我需要在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 

我需要能夠跨越多天

+0

什麼是您的RDBMS? – morgb

+0

我正在使用SQL Server – user3666224

回答

1

這會給你所有的列表,時間爲下午9:30或更高版本,或下午1:00或之前(主要是那些這兩個時間之間發生的)上的日期:

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

你可以也可以在case語句中使用這個邏輯來產生一些其他指標,以幫助您對這些日期進行分類。

+0

非常感謝,這工作 – user3666224

0

你可以做的就是數據的CTE去標記一些列MAPP值和CTE外,你可以selectec這個值。

此外,您可以使用函數LAST或Oracle LAST_VALUE並執行Agregate函數來提取值直到最後一列。

我希望能幫到你。

相關問題