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