Postagens populares

Mostrando postagens com marcador postgreSQL. Mostrar todas as postagens
Mostrando postagens com marcador postgreSQL. Mostrar todas as postagens

quinta-feira, 8 de outubro de 2015

Função CAST em Doctrine 2 DQL e Symfony 2

Tive a necessidade de utilizar a função CAST em uma consulta utilizando DQL(Doctrine Query Language). Fiquei surpreso pois não existia nada pronto, mas o pessoal do Doctrine não dá ponto sem nó, e para tal existem as funções personalizadas (Custom Functions). Tudo bem, tem que aprender toda a notação, que utiliza umas constantes "malucas", e, por isto, resolvi liberar para quem quiser utilizar, a classe já pronta, falta apenas configurar no Symfony 2. 

 Siga os passos e implemente em seu projeto: 

1 - Baixe o arquivo deste repositório: Doctrine 2 Tips and Tricks .

2 - Ajuste a diretiva (geralmente localizada no arquivo config.yml):

doctrine:
        orm:
            entity_managers:
                default:
                    dql:
                        string_functions:
                            Cast:
                                Path\Namespace\DQL\Cast


Limpe o cache e utilize a função dentro da Query DQL:
SELECT CAST(column AS TYPE)

That's it!

segunda-feira, 25 de abril de 2011

Calculo de dias com campos data no POSTGRESQL

Para retirar a quantidade de dias baseada em um campo de data ou timestamp, o POSTGRESQL permite realizar estes cálculos de maneira bem prática.

Como exemplo, tenho o campo locacoes.saida (timestamp da tabela locacoes) de um DVD. Quero calcular quantos dias, até agora, ele esta com o cliente sem levar em conta as horas:

SELECT (CURRENT_DATE - locacoes.saida::date) FROM locacoes;

O resultado desta conta será o total de dias que se passaram da data de saida do DVD. Repare que o TYPECAST  para date é importante, e somá-lo a outro tipo DATE também. Se ao invés disto, vc fizer:

SELECT (NOW() - locacoes.saida) FROM locacoes;

ele retornará algo como: "4 days 17:51:23.338403" que é o tipo INTERVAL no banco, levando em conta as horas.

Existem mais coisas que se pode fazer com datas no POSTGRESQL, leia a seção no manual do postgresql que é muito interessante.


Thats it!

quarta-feira, 7 de julho de 2010

WITH CLAUSE

Lendo o manual do postgreSQL (8.4) descobri algo muito útil: a cláusula WITH.

Com ela você pode selecionar dados a partir de um outro select, algo como uma view "on the fly" ou uma tabela temporária, só se auto "destrói" após o uso. Já imaginei mil aplicações para isto, você consegue? Comentem...

Exemplo basicão:

WITH regional_sales AS (
        SELECT region, SUM(amount) AS total_sales
        FROM orders
        GROUP BY region
     ), top_regions AS (
        SELECT region
        FROM regional_sales
        WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
     )
SELECT region,
       product,
       SUM(quantity) AS product_units,
       SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;
 
 
Isto poderia ser escrito sem WITH, mas seria mais custoso pois precisaria de mais níveis de sub-selects.
Referência postgreSQL

terça-feira, 13 de outubro de 2009

Dica: postgresql autodoc

Certa vez precisei criar um diagrama de um banco que já existia. Haja paciência para fazer um trabalho manual destes!

Bem, se você usa posgreSQL essa ferramenta pode ajudá-lo muito: postgresql-autodoc.

Com esta ferramenta você pode criar diagramas nos formatos: Dia, Docbook, HTML, and GraphViz.


Visite o site do projeto clicando aqui.

quarta-feira, 8 de abril de 2009

Evento: PGDay

Para todos que trabalham ou se interessam pelo SGDB postgreSQL haverá um evento em alguns estados do Brasil. Não percam!

http://www.postgresql.org.br/eventos/pgday

Magazine Luiza