Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORACLE PL/SQL-使用SYSDATE检索特定日期的数据时出现检索问题_Sql_Oracle_Scheduled Tasks - Fatal编程技术网

ORACLE PL/SQL-使用SYSDATE检索特定日期的数据时出现检索问题

ORACLE PL/SQL-使用SYSDATE检索特定日期的数据时出现检索问题,sql,oracle,scheduled-tasks,Sql,Oracle,Scheduled Tasks,目标:每当使用SYSDATE检索特定日期的数据时,我都没有获得正确的数据 到目前为止,我所做的是:我创建了一个包含以下字段的表 销售|日期|销售| Id |名称|加载|日期 该表包含数千条记录。如果我想看一周前的销售细节。我使用以下查询 SELECT TRUNC(sales_Date),SUM(sales_ID) FROM sales_DB WHERE sales_Date BETWEEN TRUNC(SYSDATE-7) AND TRUNC(SYSDATE) GROUP BY TRUNC

目标:每当使用SYSDATE检索特定日期的数据时,我都没有获得正确的数据

到目前为止,我所做的是:我创建了一个包含以下字段的表 销售|日期|销售| Id |名称|加载|日期

该表包含数千条记录。如果我想看一周前的销售细节。我使用以下查询

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)
上面的查询列出了列表顺序中的一些详细信息(7天内的销售Id之和)。但是 如果我想检索一个特定日期的数据(让我考虑2天),

上面的查询显示了我在查询中提到的特定数据的_sales _Id u的总和,以及属于第二天的数据

简而言之,如果我想检索前天发生的销售详细信息,那么每当我试图检索时,昨天发生的一些数据就会重叠

甚至我们也尝试了数字格式,如
“2016年10月12日上午12.00.00.000000”和“2016年10月12日下午11.59.59.99900”

由于我们使用的是任务调度,因此无法进行手动检索。它必须在.bat文件中安排一次。任务每天都会被触发


是否有任何解决方案可以使用sysdate避免这些数据重叠。或者是否有任何其他替代方法来检索特定日期的数据。

between是有效的。改变

WHERE sales_Date 
BETWEEN TRUNC(SYSDATE-2) AND TRUNC(SYSDATE-1)

WHERE sales\u Date
>=TRUNC(SYSDATE-2)和sales_Date
中间是包含的。改变

WHERE sales_Date 
BETWEEN TRUNC(SYSDATE-2) AND TRUNC(SYSDATE-1)

WHERE sales\u Date
>=TRUNC(SYSDATE-2)和sales_Date
其中trunc(sales_-date)=trunc(sysdate-1)尝试trunc(sysdate-2)和trunc(sysdate-1)-1/24/60/60之间的
sales_-date列的数据类型是什么?@Boneist TIMESTAMP是我们提到的sales_-date字段的数据类型。@Rene=没有产生正确的结果。这就是为什么我们在trunc(sysdate-2)和trunc(sysdate-1)之间进行选择,其中trunc(sales_date)=trunc(sysdate-1)在trunc(sysdate-2)和trunc(sysdate-1)之间尝试
-1/24/60/60
sales_date列的数据类型是什么?@Boneist TIMESTAMP是我们提到的sales_date字段的数据类型。@Rene=未产生正确的结果。这就是我们在trunc(sysdate-2)和trunc(sysdate-1)之间选择的原因。我刚刚要发布这个答案。我总是使用后一种说法,因为中间的说法很容易让人厌烦。谢谢你抽出时间。我们已经试过了,它工作正常。我们非常感谢你的努力。现在我们可以在没有任何重叠的情况下检索到准确的数据了。我正要发布这个答案。我总是使用后一种说法,因为中间的说法很容易让人厌烦。谢谢你抽出时间。我们已经试过了,它工作正常。我们非常感谢你的努力。现在,我们能够检索到准确的数据,而没有任何重叠。
WHERE sales_Date 
>= TRUNC(SYSDATE-2) and sales_Date < TRUNC(SYSDATE-1)