目标:每当我使用SYSDATE检索特定日期的数据时,我都没有获得正确的数据。
到目前为止我做了什么:我创建了一个包含以下字段的表 sales_Date | sales_Id |名称| Load_Date
该表包含数千条记录。如果我想看一周的销售细节。我使用以下查询,
SELECT TRUNC(sales_Date),SUM(sales_ID)
FROM sales_DB
WHERE sales_Date
BETWEEN TRUNC(SYSDATE-7) AND TRUNC(SYSDATE)
GROUP BY TRUNC(sales_Date)
以上查询以列表顺序列出一些详细信息(其中_sales_Id_的总和为7天)。但, 如果我想检索特定日期的数据(让我考虑2天后),
SELECT TRUNC(sales_Date),SUM(sales_ID)
FROM sales_DB
WHERE sales_Date
BETWEEN TRUNC(SYSDATE-2) AND TRUNC(SYSDATE-1)
GROUP BY TRUNC(sales_Date)
以上查询显示_sales_Id_的总和,用于我在查询中提到的特定数据,以及属于第二天的数据。
简而言之,如果我想检索前天发生的销售详情,昨天发生的的一些数据是重叠 < / strong>每当我尝试检索它时。
即使我们也尝试过数字格式,如
&#39; 12-OCT-16 12.00.00.000000 AM&#39; AND&#39; 12-OCT-16 11.59.59.999000 PM,
由于我们使用任务计划,我们无法进行手动检索。它必须在 .bat 文件中安排一次。每天都会触发任务。
是否有任何解决方案可以使用 sysdate 来避免这些重叠数据。或者是否有任何其他方法来检索特定日期的数据。
答案 0 :(得分:2)
WHERE sales_Date
BETWEEN TRUNC(SYSDATE-2) AND TRUNC(SYSDATE-1)
到
WHERE sales_Date
>= TRUNC(SYSDATE-2) and sales_Date < TRUNC(SYSDATE-1)