试图找到如何在两个日期之间从 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 数据库中提取数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章