SQL Oracle查找在指定时间之前创建的记录

doinxwow  于 2023-03-29  发布在  Oracle
关注(0)|答案(1)|浏览(148)

我对SQL还很陌生,我在一件事上卡住了。
假设我有一个数据库,每隔几分钟就有新的记录被创建,并且有一个'dstamp'行,其中包含特定行连接到数据库的时间。我试图写一个查询,(一旦运行)将显示所有连接到我的数据库的记录,直到下午3点(15:00),基本上它将是一个报告,每当有人运行它,总是会显示创建的行,直到15:00的一天报告运行(包括所有过去的日子,但从过去的日子,包括整天,不仅直到下午3点)。
简单示例:
数据库
| xyz_id|数据戳|
| --------------|--------------|
| 一百一十一|2019 - 01 - 22 12:55:00|
| 二百二十二|2019 - 03 - 26 14:51:23|
| 三百三十三|2023年3月26日15:05:00|
查询结果(于2023年3月26日15:10:00运行):
| xyz_id|数据戳|
| --------------|--------------|
| 一百一十一|2019 - 01 - 22 12:55:00|
| 二百二十二|2019 - 03 - 26 14:51:23|
因此,如果有人在下午1点运行查询,它将显示所有结果,直到下午1点(因为下午3点是截止日期),但如果有人在下午4点运行查询,它将显示所有结果,直到下午3点[包括所有以前(完整)天,并忽略当天15:00:00之后的任何内容]。
正如我提到的,我对它很陌生,所以没有尝试任何特别的东西,因为我被困在如何使查询查找从前一天和今天到下午3点的所有记录上。
希望一切都说得通。
有人能告诉我有什么办法吗?

kninwzqo

kninwzqo1#

针对SYSDATE的过滤器截短到午夜,并添加了15小时:

SELECT *
FROM   table-name
WHERE  dstamp <= TRUNC(SYSDATE) + INTERVAL '15' HOUR;

相关问题