Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何查询“如何查询”;“每天”;MS SQL中给定日期范围的结果?_Sql_Sql Server - Fatal编程技术网

我如何查询“如何查询”;“每天”;MS SQL中给定日期范围的结果?

我如何查询“如何查询”;“每天”;MS SQL中给定日期范围的结果?,sql,sql-server,Sql,Sql Server,我想构建一个查询,它将提取在给定日期范围和时间范围内创建的行数。换句话说。日期范围应为给定的月份,但我只希望在给定的时间内(例如从08:00到17:00)为该月份的每一天创建的行 这容易做到吗 我每天都在考虑子查询,但不知道是否有更简单的方法。我想这会给你想要的。您可以用它生成一个存储过程或函数,并传入开始/结束日期和开始/结束时间(现在已固定)。请注意,日期严格小于结束日期。您也可以使用小于或等于'8/31/2009 11:59:59' select count(*), date

我想构建一个查询,它将提取在给定日期范围和时间范围内创建的行数。换句话说。日期范围应为给定的月份,但我只希望在给定的时间内(例如从08:00到17:00)为该月份的每一天创建的行

这容易做到吗


我每天都在考虑子查询,但不知道是否有更简单的方法。

我想这会给你想要的。您可以用它生成一个存储过程或函数,并传入开始/结束日期和开始/结束时间(现在已固定)。请注意,日期严格小于结束日期。您也可以使用小于或等于'8/31/2009 11:59:59'

select count(*),
       datepart(year,created) as [year],
       datepart(month,created) as [month],
       datepart(day,created) as [day]
from table
where created >= '8/1/2009'
      and created < '9/1/2009'
      and datepart(hour,created) >= 8
      and datepart(hour,created) <= 17
group by datepart(year,created), datepart(month,created), datepart(day,created)
选择计数(*),
datepart(年,已创建)为[年],
datepart(月,已创建)为[月],
datepart(天,已创建)为[天]
从桌子上
创建位置>='8/1/2009'
并创建了<'9/1/2009'
和日期部分(小时,已创建)>=8
和datepart(hour,created)使用datepart()函数测试您感兴趣的小时数

例如:

select 1,
    datepart(hour,getDate())
where datepart(hour,getDate()) >= 8 and datepart(hour,getDate()) < 17
选择1,
datepart(小时,getDate())
其中datepart(hour,getDate())>=8,datepart(hour,getDate())<17

可以执行类似操作此操作的时间范围为小时(中午12点-下午1点)和天(今天到10天前):

从DateColumn(GetDate()-11)和DatePart(hh,DateColumn)>=12和DatePart(hh,DateColumn)为什么不这样做呢

... WHERE MONTH(TheDateColum) = @Month AND HOUR(TheDateColum) >= 8 AND HOUR(TheDateColumn) <= 17

。。。WHERE MONTH(the DateColumn)=@MONTH AND HOUR(the DateColumn)>=8 AND HOUR(the DateColumn)感谢大家的回复!
... WHERE MONTH(TheDateColum) = @Month AND HOUR(TheDateColum) >= 8 AND HOUR(TheDateColumn) <= 17