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

Sql server 需要从Sql Express 2008中的当前日期提取具有特定日期范围的数据,sql-server,getdate,datepart,Sql Server,Getdate,Datepart,在我的表上有一个“Datemodified”列。我能够根据那个专栏得出结果。我希望能从早上6点到下午6点拉任何东西。这个查询需要能够每天使用,因此我所看到的方式使用特定的日期,而我无法获得任何我所寻找的用于我的特定案例的查询 这是我到目前为止所做的工作,它的时间框架是正确的,但我需要它只在今天运行。谢谢大家 SELECT Assignment , Datemodified , General , IncNumber , NextSteps , PDCRStatus

在我的表上有一个“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()

类似这样的方法会奏效:

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) )
选择分配、日期修改、常规、IncNumber、下一步、PDCRStatus、根本原因、状态、摘要、计时、用户ID
从营业额
其中(Datemodified>=dateadd(hh,选择CAST(转换(CHAR(8),GetDate(),112)为DATETIME),6)和

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

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

所以你得到:

选择Assignment、Datemodified、General、IncNumber、NextSteps、PDCRStatus、, 根本原因、状态、摘要、时间安排、营业额的用户ID 其中DATEPART(HOUR,datemodified)介于06和18之间
和CONVERT(NVARCHAR(50),datemodified,103)=CONVERT(NVARCHAR(50),GETDATE(),103)

GENIUS!非常感谢您的帮助!将
和DATEDIFF(day,datemodified,GETDATE())=0添加到您的位置