如何根据SQL Server中的特定DateTime数据获取值?

时间:2017-04-28 04:45:20

标签: sql-server-2012

我有一张名为MachineDetails的表。

表格格式如下:

S.No    Machine         StartTime                       EndTime
-------------------------------------------------------------------------
1       Machine-2   2017-04-27 06:07:00.000     2017-04-27 07:38:48.000
1       Machine-2   2017-04-27 11:12:48.000     2017-04-27 12:13:08.000
2       Machine-3   2017-04-27 08:56:35.000     2017-04-27 08:53:11.000
2       Machine-3   2017-04-27 09:26:40.000     2017-04-27 10:36:38.000
3       Machine-4   2017-04-27 16:01:26.000     2017-04-27 17:09:13.000
4       Machine-7   2017-04-27 23:42:57.000     2017-04-28 07:40:43.000 
5       Machine-8   2017-04-28 06:36:34.000     2017-04-28 08:21:07.000

我想根据开始时间和结束时间过滤数据。

例如:我需要输出如下:

S.No    Machine         StartTime                       EndTime
-------------------------------------------------------------------------
2       Machine-3   2017-04-27 08:56:35.000     2017-04-27 08:53:11.000
7       Machine-3   2017-04-27 09:26:40.000     2017-04-27 10:36:38.000

我尝试过此查询,但无效:

select * 
from MachineDetails 
where starttime >= '2017-04-28 08:00:00 AM' 
  and EndTime <= '2017-04-28 11:00:00 AM'

有谁可以帮我解决这个问题?

1 个答案:

答案 0 :(得分:1)

查看您期望的结果,看起来您的查询本身是错误的。不应该像下面给出的一样吗? (使用4月27日)

select * from MachineDetails where starttime >= '2017-04-27 08:00:00 AM' and EndTime <= '2017-04-27 11:00:00 AM'