我要 select 最后一小时的结果
I want to select last hour results
SELECT DISTINCT
ip.IPAddress,
CONVERT(varchar, dan.AuditDate, 100) AS Date,
ip.AuditAction,ip.Username,
(CASE
WHEN CONCAT(k.FirstName, ' ', k.LastName) IS NULL OR CONCAT(k.FirstName, ' ', k.LastName) = ' '
THEN k.Name
ELSE CONCAT(k.FirstName, ' ', k.LastName)
END) AS 'Name'
FROM
IPAddress ip
INNER JOIN
user k ON k.ID = ip.PerformerID
INNER JOIN
audit dan ON ip.IPAddress = dan.Value1
AND ip.Date = CAST(dan.AuditDate AS Date)
AND ip.AuditAction = dan.AuditStr
AND ip.PerformerID = dan.PerformerID
INNER JOIN
LoginMoreOne n ON n.LUsername = ip.Username
AND n.LUsername IS NOT NULL
WHERE
LEN(ip.IPAddress) > 8
AND dan.AuditDate > DATEADD(HOUR, DATEDIFF(hour, 0, DATEADD(mi, 30, GETDATE())), 0)
GROUP BY
ip.IPAddress, ip.Date, ip.AuditAction,
ip.Username, ip.PerformerID,
k.FirstName, k.LastName, k.Name,
CAST(dan.AuditDate AS Date), dan.AuditDate
例如,如果我在下午 2.30 执行此查询,我想要下午 1 点到下午 2 点的结果,或者如果我在下午 3.10 执行此查询,我想要从下午 2 点到 3 点的结果,依此类推,如何我编辑我的 where 语句以获得所需的结果
表达式 dateadd(hour, datediff(hour, 0, getdate()), 0)
将为您提供当前时间的日期和时间,分、秒 = 0
-1
以 0 分钟 0 秒显示前一小时
AuditDate >= dateadd(hour, datediff(hour, 0, getdate()) - 1, 0)
and AuditDate < dateadd(hour, datediff(hour, 0, getdate()), 0)
改为
dan.AuditDate > DATEADD(HOUR, datediff(hour, 0, dateadd(mi, 30, GETDATE())), 0)
使用:
dan.AuditDate > DATEADD(HH, -1.5, GETDATE()) AND dan.AuditDate <= DATEADD(HH,-0.5, GETDATE())
SELECT DISTINCT
ip.IPAddress,
CONVERT(varchar, dan.AuditDate, 100) AS Date,
ip.AuditAction,ip.Username,
(CASE
WHEN CONCAT(k.FirstName, ' ', k.LastName) IS NULL OR CONCAT(k.FirstName, ' ', k.LastName) = ' '
THEN k.Name
ELSE CONCAT(k.FirstName, ' ', k.LastName)
END) AS 'Name'
FROM
IPAddress ip
INNER JOIN
user k ON k.ID = ip.PerformerID
INNER JOIN
audit dan ON ip.IPAddress = dan.Value1
AND ip.Date = CAST(dan.AuditDate AS Date)
AND ip.AuditAction = dan.AuditStr
AND ip.PerformerID = dan.PerformerID
INNER JOIN
LoginMoreOne n ON n.LUsername = ip.Username
AND n.LUsername IS NOT NULL
WHERE
LEN(ip.IPAddress) > 8
AND dan.AuditDate > DATEADD(HOUR, DATEDIFF(hour, 0, DATEADD(mi, 30, GETDATE())), 0)
GROUP BY
ip.IPAddress, ip.Date, ip.AuditAction,
ip.Username, ip.PerformerID,
k.FirstName, k.LastName, k.Name,
CAST(dan.AuditDate AS Date), dan.AuditDate
例如,如果我在下午 2.30 执行此查询,我想要下午 1 点到下午 2 点的结果,或者如果我在下午 3.10 执行此查询,我想要从下午 2 点到 3 点的结果,依此类推,如何我编辑我的 where 语句以获得所需的结果
表达式 dateadd(hour, datediff(hour, 0, getdate()), 0)
将为您提供当前时间的日期和时间,分、秒 = 0
-1
以 0 分钟 0 秒显示前一小时
AuditDate >= dateadd(hour, datediff(hour, 0, getdate()) - 1, 0)
and AuditDate < dateadd(hour, datediff(hour, 0, getdate()), 0)
改为
dan.AuditDate > DATEADD(HOUR, datediff(hour, 0, dateadd(mi, 30, GETDATE())), 0)
使用:
dan.AuditDate > DATEADD(HH, -1.5, GETDATE()) AND dan.AuditDate <= DATEADD(HH,-0.5, GETDATE())