I run a Microsoft SQL Server SELECT query and have an issue trying to define a specific time range for that query every 6 hours (I am a newer user of SQL Server).
I have an external script calling this SQL Server database every 6 hours, so I only need the newly produced data from the previous 6 hours until the current time.
For example, if my script executes at 6:00pm PST, I only need the data between 12:00 P.M.- 6:00 P.M. for that current day (or the previous day if script cron job falls between a day range.
An example of my query is below
SELECT *
FROM
(SELECT
CONVERT(VARCHAR(30), GETUTCDATE(), 121 AS Current_SYSTEM_TIME,
Table1.Column_11,
Table1.Column_12,
Table1.Column_13,
Table2.Column_11,
Table2.Column_12,
Table2.Column_13,
Table3.Column_11,
Table3.Column_12,
Table3.Column_13
FROM
Table1
INNER JOIN
Table2 ON (Table1.Column_11 = Table2.Column_11)
INNER JOIN
Table3 ON (Table1.Column_11 = Table3.Column_11)
WHERE
Table3.Column_12 'pass') a
WHERE
Table3.Column_13 < 2
AND Current_SYSTEM_TIME BETWEEN DATEADD(day, -1, GETUTCDATE()) AND GETUTCDATE()
Advertisement
Answer
Welcome to Community!
Please try below WHERE condition in your query with HOUR(hh) range.
....... ....... WHERE Table3.Column_13 < 2 AND <event_time> BETWEEN DATEADD(hh, -6, GETUTCDATE()) AND GETUTCDATE()
EDITED: As per your comment above! Please apply your where condition on <event_time> field!