Problème de format date ????

Fermé
plogos Messages postés 1 Date d'inscription jeudi 23 juillet 2020 Statut Membre Dernière intervention 23 juillet 2020 - 23 juil. 2020 à 11:54
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 23 juil. 2020 à 12:02
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 juil. 2020 à 12:02
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