Pular para o conteúdo principal

Função Diferença em Anos para Postgresql

A seguinte função para o banco de dados Postgresql permite calcular a Diferença em Anos entre duas datas:


-- Function: public."func_Data_Diferenca_Anos"(date)

-- DROP FUNCTION public."func_Data_Diferenca_Anos"(date);

CREATE OR REPLACE FUNCTION public."func_Data_Diferenca_Anos"("in_Data" date)
  RETURNS integer AS
$BODY$
DECLARE 
   iAnoAtual integer;
   iAnoData integer;
   iMesAtual integer;
   iMesData integer;
   iDiaAtual integer;
   iDiaData integer;
   iDifAnos integer;
   iDifMeses integer;
  BEGIN
iAnoAtual=EXTRACT(year from CURRENT_DATE);
iAnoData=EXTRACT(year from $1);
iMesAtual=EXTRACT(month from CURRENT_DATE);
iMesData=EXTRACT(month from $1);
iDiaAtual=EXTRACT(day from CURRENT_DATE);
iDiaData=EXTRACT(day from $1);

iDifAnos=iAnoAtual-iAnoData;

IF (iMesAtual < iMesData) THEN 
   iDifAnos=iDifAnos-1;
END IF;    

RETURN iDifAnos;
  END; 
  $BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public."func_Data_Diferenca_Anos"(date)
  OWNER TO postgres;

Comentários

Postagens mais visitadas deste blog

Inserção de Campo UUID via Kettle

Ao inserir campos UUID / Postgresql via Kettle é gerado a seguinte mensagem de erro: coluna "???" é do tipo uuid mas expressão é do tipo character varying.    Isso é causado devido o driver JDBC durante a fase de preparação do query definir o tipo que será passada para cada campo do tipo string. Para desativar esse comportamento pode-se acrescentar nas Options do Database Connection Parameter:  stringtype Value: unspecified Uma boa prática é duplicar a conexão ao banco para nos casos que este recurso não seja necessário manter o comportamento padrão. Referência: https://stackoverflow.com/questions/38563544/how-insert-uuid-values-in-postgresql-table-via-kettle http://jira.pentaho.com/browse/PDI-2950 https://jdbc.postgresql.org/documentation/83/connect.html

Pentaho/CDE tradução das expressões em Tabelas componente Table

O componente table do CDE é baseado no componente web DataTables. Pela documentação desse componente para traduzir as mensagens para Português recomenda-se ajustar na propriedade "language" com o seguinte conteúdo: {      "sEmptyTable" :  "Nenhum registro encontrado" ,      "sInfo" :  "Mostrando de _START_ até _END_ de _TOTAL_ registros" ,      "sInfoEmpty" :  "Mostrando 0 até 0 de 0 registros" ,      "sInfoFiltered" :  "(Filtrados de _MAX_ registros)" ,      "sInfoPostFix" :  "" ,      "sInfoThousands" :  "." ,      "sLengthMenu" :  "_MENU_ resultados por página" ,      "sLoadingRecords" :  "Carregando..." ,      "sProcessing" :  "Processando..." ,      "sZeroRecords" :  "Nenhum registro encontrado" ,      "sSearch" :  "Pesquisar" ,

Inserindo um Gráfico em um Tooltip de outro Gráfico no Pentaho

Eu trabalho com Pentaho mas sou admirador de outras Ferramentas de BI. Compreendo que as empresas e instituições adotam esta ou aquela ferramenta por motivos de facilidade, cultura, equipe, financeiro ou outros.  Gosto de examinar em especial o Tableau. Recentemente vi um tutorial onde era demonstrado como inserir um gráfico dentro de um Tooltip de um outro gráfico. Achei a idéia muito interessante e me propus a tentar fazer o mesmo usando o Pentaho. Bem vamos lá... Para construção desse efeito usaremos: O Pentaho Server Community; Ctools  CDE - Editor de dashboards; Ctools CCC  - Biblioteca  de gráficos; Ctools CGG - Exportador dos gráficos que permite o aceso ao gráfico em formato PNG ou SVG; Quando pronto o efeito fica dessa forma: Para Fonte de dados utilizei o conjunto de dados SteelWheels que vem com o Pentaho. Defini duas consultas MDX, uma para o primeiro gráfico e outra para o Gráfico do Tooltip: SalesForLine (Gráfico 1): WITH SET [~ROWS] AS     Or