J'ai une table pour les commandes et il a 2 colonnes avec les types DATE: delivery_date et order_date. Dans mon sqldeveloper, toutes les dates que j'ai insérées via Java ou à la main sont au format 10.01.25 pour le 25 janvier de cette année. Lorsque je tente de voir l'TOTAL_PRICE pour les commandes entre une date et une autre, je force le format comme celui-ci:Comment sélectionner les résultats entre deux dates ou par année/mois/jour dans Oracle? (to_date, extract, sysdate)
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;
mais je reçois -1 retourné. J'essaie même de faire la requête comme ceci: select f.total_enc_fornec from fornecimento f where f.data_entrega = '10.01.24';
comme ceci: select f.total_enc_fornec from fornecimento f where f.data_entrega = to_date('10.01.24','yy-mm-dd');
comme ceci: select f.total_enc_fornec from fornecimento f where f.data_entrega < to_date('10.01.24');
et rien est de retour! mais si j'exécute: select f.total_enc_fornec from fornecimento f where f.data_entrega <= sysdate;
il imprime un résultat comme il est censé ...
Comment est-ce que je peux faire ceci? Je ne suis clairement pas passer correctement les paramètres ni dans la fonction, ni exécuter la requête elle-même
Btw, et si je voulais sélectionner TOUS les ordres d'une année/mois/jour? Dites, en utilisant la fonction d'extraction par exemple. Pourriez-vous s'il vous plaît me montrer comment? J'ai essayé, mais j'ai les mêmes problèmes et moi, c'est simple dans le concept, au moins, lol.
ne devrait pas TO_DATE ('10 .01.24' , » yy-mm-dd ') être to_date ('10 .01.24', 'yy.mm.dd')? –
@Dyno Fu: soit fonctionnera. oracle ne se soucie pas trop de ce que le caractère séparateur est, tant qu'il est là. –
@Dyno Fu: non, ce ne sera pas le cas, mais cela ne fait aucune différence pour Oracle. :( – neverMind