Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2016, 15:12
draganus
 
Fecha de Ingreso: junio-2015
Mensajes: 38
Antigüedad: 11 años, 4 meses
Puntos: 0
duda con un tipo date en una funcion

Buenas compañero tengo una función donde ingreso tres parámetros y según esos parametros me lista las ventas según el año. cliente y tipo de comprobante de pago.
Código PHP:
IN p_fecha date,
    
IN p_cliente integer,
    
IN p_comprobante character 
Estos parámetros me sirven para llamar a unos datos ingresados desde php, en el tipo date tengo que ingresarle una fecha con el formato siguiente "2016-08-05" pero ahora quiero que en ves de una fecha completa ese tipo date solo sea el mes y el año "08-05" dejo mi consulta y espero me ayuden o me den una idea de como hacerlo.

Código PHP:
CREATE OR REPLACE FUNCTION public.fn_reporte_venta(
    
IN p_fecha date,
    
IN p_cliente integer,
    
IN p_comprobante character)
  
RETURNS TABLE(nro integer, fecha date, tipo character varying, cliente text, porc_igv numeric, st numeric, igv numeric, total numeric) AS
$BODY$
begin
    
return query
    select v
.numero_venta,
           
v.fecha_venta,
           
tc.descripcion,
           
concat(apellido_paterno, ' ', apellido_materno, ' ', nombres) as client,
           
v.porcentaje_igv,
           
v.sub_total,
           
v.igv,
           
v.total
    from venta v 
         inner join cliente cl on v
.codigo_cliente = cl.codigo_cliente
         inner join tipo_comprobante tc on v
.codigo_tipo_comprobante = tc.codigo_tipo_comprobante
    where v
.estado = 'E' and
          (
        case 
when p_fecha = '11-11-1111' then 
            1 
= 1
        
else
            
v.fecha_venta = p_fecha
        end
          
)
          and
          (
        case 
when p_cliente = 0 then 
            1 
= 1
        
else
            
cl.codigo_cliente = p_cliente
        end
          
) and 
          (
        case 
when p_comprobante = '00' then 
            1 
= 1
        
else
            
tc.codigo_tipo_comprobante = p_comprobante
        end
          
)
          
order by 2;
end
$BODY
$
  
LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000
;
ALTER FUNCTION public.fn_reporte_venta(date, integer, character)
  
OWNER TO postgres;