获取 SQL 服务器中最后一小时、最后 'x' 分钟的行
Get rows of Last hour, Last 'x' minutes in SQL Server
Order ID
Picker ID
Time_Picked
1
111
2020-01-13 11:28:00
2
222
2020-01-13 11:40:00
3
333
2020-01-13 10:00:00
4
444
2020-01-13 9:00:00
5
555
2020-01-13 9:45:00
SELECT *
FROM mytable
WHERE Time_picked BETWEEN DATEADD(HOUR, -1, GETDATE()) AND CAST(GETDATE() AS DATE)
我的 SQL Server 2016 中出现空白输出。
考虑现在是 12:00 下午。我想要 return 前两行(最后一小时的行)。
请帮助我找到最后 'x' 分钟的详细信息(如果有的话)。
PS:我定期从 SQL 服务器访问此数据,我正在尝试使其成为动态的。
如有任何帮助,我们将不胜感激。提前致谢。
你的时间表达是:
WHERE Time_picked BETWEEN DATEADD(HOUR, -1, GETDATE()) AND CAST(GETDATE() AS DATE)
在大多数情况下,第一个 比第二个大 ,因为 CAST()
删除了时间部分。我怀疑你想要:
WHERE Time_picked BETWEEN DATEADD(HOUR, -1, GETDATE()) AND GETDATE()
或者假设所有时间值都是过去的:
WHERE Time_picked >= DATEADD(HOUR, -1, GETDATE())
Order ID | Picker ID | Time_Picked |
---|---|---|
1 | 111 | 2020-01-13 11:28:00 |
2 | 222 | 2020-01-13 11:40:00 |
3 | 333 | 2020-01-13 10:00:00 |
4 | 444 | 2020-01-13 9:00:00 |
5 | 555 | 2020-01-13 9:45:00 |
SELECT *
FROM mytable
WHERE Time_picked BETWEEN DATEADD(HOUR, -1, GETDATE()) AND CAST(GETDATE() AS DATE)
我的 SQL Server 2016 中出现空白输出。
考虑现在是 12:00 下午。我想要 return 前两行(最后一小时的行)。
请帮助我找到最后 'x' 分钟的详细信息(如果有的话)。
PS:我定期从 SQL 服务器访问此数据,我正在尝试使其成为动态的。
如有任何帮助,我们将不胜感激。提前致谢。
你的时间表达是:
WHERE Time_picked BETWEEN DATEADD(HOUR, -1, GETDATE()) AND CAST(GETDATE() AS DATE)
在大多数情况下,第一个 比第二个大 ,因为 CAST()
删除了时间部分。我怀疑你想要:
WHERE Time_picked BETWEEN DATEADD(HOUR, -1, GETDATE()) AND GETDATE()
或者假设所有时间值都是过去的:
WHERE Time_picked >= DATEADD(HOUR, -1, GETDATE())