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