在SQL Server中在20:00和05:00之间获取数据
我在SQL Server中有一个包含一些数据以及datetime
列的表。在SQL Server中在20:00和05:00之间获取数据
我想在20:00和05:00时钟之间取数据。
我有以下查询,但不能得到succedeed
select
txt_target_cell_id, count(*) as 'Total Count', txt_longitude, txt_latitude
from
tbl_cdr_analyzer_load
where
DATEPART(hour, dat_start) between 20 and 05
group by
txt_target_cell_id, txt_longitude, txt_latitude
你BETWEEN
声明表示:
DATEPART(hour, dat_start) >= 20 AND DATEPART(hour, dat_start)<=04
这始终是假的。
你可以尝试做这样的:
select
txt_target_cell_id,count(*) as 'Total Count',txt_longitude,txt_latitude
from
tbl_cdr_analyzer_load
where
DATEPART(hour, dat_start) <= 04 OR DATEPART(hour, dat_start)>=20
group by
txt_target_cell_id,txt_longitude,txt_latitude
难道你不认为必须有'AND'opertor而不是'OR' – 2013-05-01 05:38:53
不,因为如果它的AND,那么查询将在04到20之间,就像你在 – Stasel 2013-05-01 05:48:14
之前尝试的那样,这不会在'DATEPART小时,dat_start) = 23'。这里0到23小时之间的数据将出来 – 2013-05-31 11:56:22
select
txt_target_cell_id, count(*) as 'Total Count', txt_longitude, txt_latitude
from
tbl_cdr_analyzer_load
where
DATEPART(hour, dat_start) between 04 and 20 //Change here
group by
txt_target_cell_id, txt_longitude, txt_latitude
,因为valu1和值2之间的ID相当于。 其中id> =值和id = < values2 得到渴望的结果,,,,
Select
txt_target_cell_id,count(*) as 'Total Count',txt_longitude,txt_latitude
from
tbl_cdr_analyzer_load
where
DATEPART(hour, dat_start) <= 04 OR DATEPART(hour, dat_start)>=20
group by
txt_target_cell_id,txt_longitude,txt_latitude
如果我在4和20之间做的话,它不会给我4'o时间早上到8点钟之间的结果。我想在8'o时钟之间,直到4'o时间早上。 – 2013-05-01 05:22:01
我认为他的意思是相反的:第二天20到04之间的日期(即夜间活动) – Stasel 2013-05-01 05:23:06
我告诉过你之间,为什么你没有得到resuklt获得结果使用@Stasel查询 – 2013-05-01 05:25:33
你想从*所有的* 20:00日期24:00和00:00〜04数据:00或从20:00至24:00的*特定*日期和*第二天* 00:00至04:00的数据? – Corak 2013-05-01 05:25:51
从所有的日期.. – 2013-05-01 05:26:34
好的,然后斯塔斯答案应该为你工作。 – Corak 2013-05-01 05:28:40