需要从当前日期在Sql Express 2008中提取具有特定日期范围的数据

时间:2012-11-05 14:31:43

标签: sql-server getdate datepart

在我的桌子上,我有一个" Datemodified"柱。我能够根据该列提取结果。我想能够从早上6点到下午6点拉任何东西。此查询需要能够每天使用,因此我所看到的方式,使用特定日期,我无法获得我为特定情况工作的任何查询

这是我到目前为止所做的工作,它拉动了正确的小时时间框架,但我需要它才能在当天运行。谢谢大家!

SELECT 
  Assignment
  , Datemodified
  , General
  , IncNumber
  , NextSteps
  , PDCRStatus
  , RootCause
  , Status
  , Summary
  , Timings
  , UserID 
FROM 
  Turnover 
WHERE 
  DATEPART(HOUR, datemodified) between 06 and 18 
  --AND datemodified = GETDATE()

2 个答案:

答案 0 :(得分:1)

将您的datemodified字段转换为没有时间的日期,并对getdate()执行相同操作,然后您可以比较它们...

CONVERT(NVARCHAR(50),datemodified,103)= CONVERT(NVARCHAR(50),GETDATE(),103)

所以你得到:

SELECT Assignment,Datemodified,Gen​​eral,IncNumber,NextSteps,PDCRStatus,     RootCause,状态,摘要,计时,用户ID来自营业额 在06和18之间的DATEPART(小时,日期修改) AND CONVERT(NVARCHAR(50),datemodified,103)= CONVERT(NVARCHAR(50),GETDATE(),103)

答案 1 :(得分:0)

这样的事情会起作用:

SELECT Assignment, Datemodified, General, IncNumber, NextSteps, PDCRStatus, RootCause, Status, Summary, Timings, UserID 
FROM Turnover 
where (Datemodified >= dateadd(hh, SELECT CAST( CONVERT( CHAR(8), GetDate(), 112) AS DATETIME),  6) and  
   (Datemodified <= dateadd(hh, SELECT CAST( CONVERT( CHAR(8), GetDate(), 112) AS DATETIME), 18) )