3

私のテーブルには「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()
4

2 に答える 2

1

datemodifiedフィールドを時間のない日付に変換し、getdate()に対して同じことを行うと、それらを比較できます...

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

だからあなたは得る:

SELECT Assignment、Datemodified、General、IncNumber、NextSteps、PDCRStatus、RootCause、Status、Summary、Timings、UserID FROM Turnover WHERE DATEPART(HOUR、datemodified)between 06 and 18 AND CONVERT(NVARCHAR(50)、datemodified、103)= CONVERT( NVARCHAR(50)、GETDATE()、103)

于 2012-11-05T14:36:28.923 に答える
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) )
于 2012-11-05T14:36:18.167 に答える