试图找到如何在两个日期之间从 SQL 数据库中提取数据 [重复]

Posted

技术标签:

【中文标题】试图找到如何在两个日期之间从 SQL 数据库中提取数据 [重复]【英文标题】:Trying to find how to pull data from SQL database between two dates [duplicate] 【发布时间】:2019-11-26 18:32:43 【问题描述】:

我正在尝试找出如何在两个日期之间下载数据。例如,我希望代码获取今天和 7 天前之间的数据。现在我只能得到它来获取一天的数据。

SELECT "SITE_CODE", "LOG_ID", "SHIFT_ID", "SHIFT_DATE", "ENTRY_TIMESTAMP", "ANNOTATION_NUMBER", "DOCUMENT_NUMBER", "DOCUMENT_ORDER", "DOCUMENT_TYPE", "DOCUMENT_DESCRIPTION", "DOCUMENT_FILENAME", "DOCUMENT_BLOB" FROM(
/* + NO_PARALLEL */select * from (
select  * from (
SELECT ROWID "ROWID", ORA_ROWSCN "ORA_ROWSCN", SITE_CODE SITE_CODE, LOG_ID LOG_ID, SHIFT_ID SHIFT_ID, SHIFT_DATE SHIFT_DATE, ENTRY_TIMESTAMP ENTRY_TIMESTAMP, ANNOTATION_NUMBER ANNOTATION_NUMBER, DOCUMENT_NUMBER DOCUMENT_NUMBER, DOCUMENT_ORDER DOCUMENT_ORDER, DOCUMENT_TYPE DOCUMENT_TYPE, DOCUMENT_DESCRIPTION DOCUMENT_DESCRIPTION, DOCUMENT_FILENAME DOCUMENT_FILENAME, DOCUMENT_BLOB DOCUMENT_BLOB FROM "ESOMSP"."LOG_ENTRY_DOCUMENTS"
 )  WHERE ENTRY_TIMESTAMP  = TO_DATE('2009-02-18 10:44:10', 'YYYY-MM-DD HH24:MI:SS')
 ) sub1 order by 7 asc
)

【问题讨论】:

【参考方案1】:

date 中减去一个整数 n 会从中减去 n 天。使用trunc()date 的小时、分钟、秒...部分设置为零。

所以要过滤过去 7 天内的每个 entry_timestamp,您可以写:

...
WHERE entry_timestamp >= trunc(sysdate - 7)
      AND entry_timestamp < trunc(sysdate)
...

【讨论】:

以上是关于试图找到如何在两个日期之间从 SQL 数据库中提取数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 oracle sql 中提取两个日期之间的天数?

mysql如何提取两个日期之间的所有数据

获取在两个日期之间发布的数据

VBA中日期之间的SQL查询

两个日期之间的天数 - ANSI SQL

如何在 SQL 中每年在特定日期范围之间排除