Problema con el formato de fecha ????
plogos
Mensajes publicados
1
Estado
Miembro
-
jordane45 Mensajes publicados 30426 Fecha de registro Estado Moderador Última intervención -
jordane45 Mensajes publicados 30426 Fecha de registro Estado Moderador Última intervención -
Hola,
Hay que decir desde el principio que tengo esto
SQL> select sysdate from dual;
SYSDATE
--------
23/07/20
tengo un resultado que no sé interpretar, la primera consulta que no devuelve nada y la segunda sobre la cual he comentado el criterio relativo a la fecha, devuelve resultados. ¿Qué idea tiene?
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 KTEST.OPC = NVL('CBBV',KTEST.OPC )
AND KTEST.DATEXE = 2020
AND KTEST.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;
ninguna fila seleccionada
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
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;
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
Hay que decir desde el principio que tengo esto
SQL> select sysdate from dual;
SYSDATE
--------
23/07/20
tengo un resultado que no sé interpretar, la primera consulta que no devuelve nada y la segunda sobre la cual he comentado el criterio relativo a la fecha, devuelve resultados. ¿Qué idea tiene?
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 KTEST.OPC = NVL('CBBV',KTEST.OPC )
AND KTEST.DATEXE = 2020
AND KTEST.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;
ninguna fila seleccionada
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
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;
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 respuesta
Hola,
Dado que tienes
... ¿cómo puede tu campo ECDAT ser a la vez mayor (o igual) Y menor (o igual) a la misma fecha?
Es mejor escribir
Tu otro problema parece estar relacionado con el "formato".
Tu campo ECDAT parece estar en el formato DD/MM/YY
sin embargo, tú pusiste 4 Y
Me parece también extraño que la fecha se muestre en este formato DD/MM/YY... parece que no has utilizado un campo de tipo DATE en tu BDD, sino un VARCHAR...
Sin embargo... una fecha, en una BDD, se almacena en un campo de tipo DATE !!
De todos modos, podrías intentar
.
--
Atentamente,
Jordane
Dado que tienes
AND KTEST.ECDAT <= TO_DATE('10062020','DDMMYYYY') AND KTEST.ECDAT >= TO_DATE('10062020','DDMMYYYY') ... ¿cómo puede tu campo ECDAT ser a la vez mayor (o igual) Y menor (o igual) a la misma fecha?
Es mejor escribir
AND KTEST.ECDAT = TO_DATE('10062020','DDMMYYYY') Tu otro problema parece estar relacionado con el "formato".
Tu campo ECDAT parece estar en el formato DD/MM/YY
sin embargo, tú pusiste 4 Y
Me parece también extraño que la fecha se muestre en este formato DD/MM/YY... parece que no has utilizado un campo de tipo DATE en tu BDD, sino un VARCHAR...
Sin embargo... una fecha, en una BDD, se almacena en un campo de tipo DATE !!
De todos modos, podrías intentar
TO_DATE(KTEST.ECDAT, 'DDMMYY') = '100620'
.
--
Atentamente,
Jordane