Problème de format date ????

plogos Messages postés 1 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Il faut dire au départ que j'ai ceci
SQL> select sysdate from dual;

SYSDATE
--------
23/07/20

j'ai un résultat que je ne sais pas interpréter la première requête qui ne ramène rien et la deuxième sur laquelle j'ai mis en commentaire le critère relatif à la date, ramène des choses. Quel a-t-il une idée ?

SELECT ecdat,ctct,sensod,sum(mtdeb),sum(mtcre),flag,brecr
FROM KTEST,KIDFBUD
WHEREKTEST.SCSO||''= 'XX'
ANDKTEST.TJCOD = NVL('BQ',KTEST.TJCOD)
AND KTEST.OPC = NVL('CBBV',KTEST.OPC )
AND KTEST.DATEXE = 2020
ANDKTEST.PEC = 802
AND KTEST.ECDAT <= TO_DATE('10062020','DDMMYYYY')
AND KTEST.ECDAT >= TO_DATE('10062020','DDMMYYYY')
AND KTEST.SCSO = KIDFBUD.SCSO
AND KTEST.ICBUD = KIDFBUD.ICBUD
AND KTEST.FLAG != '8'
AND KTEST.FLAG != '5'
AND KTEST.FLAG != '9'
AND KTEST.CTCT||'' IN ('L', 'A', 'P')
group by ecdat,ctct,sensod ,flag,brecr;

aucune ligne sélectionnée

SELECT ecdat,ctct,sensod,sum(mtdeb),sum(mtcre),flag,brecr
FROM KTEST,KIDFBUD
WHERE KTEST.SCSO||''= 'XX'
AND KTEST.TJCOD = NVL('BQ',KTEST.TJCOD)
AND KTEMPOD.OPC = NVL('CBBV',KTEST.OPC )
AND KTEMPOD.DATEXE = 2020
AND KTEMPOD.PEC = 802
--AND KTEST.ECDAT <= TO_DATE('10062020','DDMMYYYY')
--AND KTEST.ECDAT >= TO_DATE('10062020','DDMMYYYY')
AND KTEST.SCSO = KIDFBUD.SCSO
AND KTEST.ICBUD = KIDFBUD.ICBUD
ANDKTEST.FLAG != '8'
AND KTEST.FLAG != '5'
AND KTEST.FLAG != '9'
AND KTEST.CTCT||'' IN ('L', 'A', 'P')
group by ecdat,ctct,sensod ,flag,brecr;

ECDAT C S SUM(MTDEB) SUM(MTCRE) F BRECR
-------- - - ---------- ---------- - ----------
10/06/20 L C 4578,79 1
10/06/20 L D 4578,79 1
21/07/20 L C 1224,39 1
21/07/20 L D 1224,39 1

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Vu que tu as
    AND KTEST.ECDAT <= TO_DATE('10062020','DDMMYYYY')
    AND KTEST.ECDAT >= TO_DATE('10062020','DDMMYYYY') 
    


    Comment... ton champ ECDAT peut être à la fois supérieur (ou égale) ET inférieur (ou égale) à la même date ?
    Autant juste écrire
    AND KTEST.ECDAT = TO_DATE('10062020','DDMMYYYY')
    


    Ton autre souci semble concerné le "format"
    Ton champ ECDAT semble être sous la forme DD/MM/YY
    hors, toi, tu as mis 4 Y

    Il me semble également étrange que la date s'affiche sous ce format DD/MM/YY ... à croire que tu n'as pas utilisé un champ de type DATE dans ta BDD mais un VARCHAR ...
    Hors.. une DATE, dans une BDD, ça se stocke dans un champ de type DATE !!

    Quoi qu'il en soit, tu pourrais essayer
    TO_DATE(KTEST.ECDAT, 'DDMMYY') = '100620'
    


    .
    0