我有一个订单表,它有 2 列包含 DATE 类型:delivery_date 和 order_date。在我的 sqldeveloper 中,我通过 Java 或手动插入的所有日期都是今年 1 月 25 日的 10.01.25 格式。当我尝试查看一个日期和另一个日期之间订单的 total_price 时,我强制采用如下格式:
create or replace function calc_Outlays (init_date IN DATE,final_date IN date)return number is
v_total_enc FORNECIMENTO.TOTAL_ENC_FORNEC%TYPE;
begin
select f.total_enc_fornec into v_total_enc from fornecimento f where f.data_entrega between init_date and final_date;
return v_total_enc;
Exception
When no_data_found then
Insert Into errors Values (0,'No supplyment costs found for dates between '||to_char(init_date)||' and '||to_char(final_date),systimestamp);
return -1;
end;
但我得到 -1 返回。我什至尝试像这样进行查询:select f.total_enc_fornec from fornecimento f where f.data_entrega = '10.01.24';
像这样:select f.total_enc_fornec from fornecimento f where f.data_entrega = to_date('10.01.24','yy-mm-dd');
像这样:select f.total_enc_fornec from fornecimento f where f.data_entrega < to_date('10.01.24');
并且没有返回任何东西!但是如果我执行 :select f.total_enc_fornec from fornecimento f where f.data_entrega <= sysdate;
它会按预期打印结果...
我怎样才能做到这一点?我显然没有正确传递参数或函数,也没有执行查询本身
顺便说一句,如果我想选择某年/月/日的所有订单?比如说,使用提取功能。你能告诉我怎么做吗?我试过了,但我遇到了同样的问题,而且我的概念很简单,至少,哈哈。