Tengo una columna con la fecha en que así como otras columnas de la tabla. Quiero ser capaz de:

mostrar todas las filas que coinciden con la fecha de haber el 1 de septiembre del año anterior al 30 de julio del año en curso.

Sé que algunos de lo que debe ser hecho no estoy seguro de la sintaxis específica de las fechas..

SELECT * FROM xx
WHERE ASM_DATE BETWEEN TRUNC(SYSDATE-1,'YY') AND TRUNC(SYSDATE,'YY');

Que es lo que tengo hasta ahora..

Sé que puedo usar SYSDATE y ‘AAAA’ para obtener el año actual y, a continuación, hacer que -1 para que el año anterior, estoy seguro de cómo especificar los meses, además de que sin embargo. Cualquier ayuda sería genial.

OriginalEl autor toups | 2012-04-30

3 Comentarios

  1. 9
    SELECT
      *
    FROM
      xxx
    WHERE
          ASM_DATE >= ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), -12)
      AND ASM_DATE <  ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'),   1)
    Grande que esta consulta funciona, aunque no es una respuesta a «mostrar todas las filas que coinciden con la fecha de haber el 1 de septiembre del año anterior al 30 de julio del año en curso.»
    No, pero fue suficiente para mí para averiguar basado en esas 🙂

    OriginalEl autor MatBailie

  2. 1

    Decir, el mes corriente es de abril de 2015.

    Un año de datos al mes anterior (de 01-FEB-2014 a 31-MAR-2015):

    SELECT *
    FROM xx
    WHERE 
    ASM_DATE BETWEEN ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -14) 
    AND
    LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1))

    Uno de los datos del año actual mes (a partir de 01-MAR-2014 a 30-ABR-2015):

    SELECT *
    FROM xx
    WHERE 
    ASM_DATE BETWEEN ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -13) 
    AND
    LAST_DAY(TRUNC(SYSDATE, 'MM'))

    OriginalEl autor Rafiq

Dejar respuesta

Please enter your comment!
Please enter your name here