Um exemplo rápido que me pegou desprevinido por não ler atentamente a documentação: a função empty do PHP retorna TRUE para um array com um indice de valor nulo.
Ex.: ARRAY[ 0 => null ]
Está certo que eu esperava um array vazio, mas na conversão do xml para a aplicação ele criou este índice. Quando verifiquei o que estava acontecendo, primeiramente imprimindo o valor da variável, achei que o teste deveria retornar TRUE pois zero => null = NADA não é mesmo?
Lendo rapidamente a documentação (no site oficial, SEMPRE) ele afirma que o empty retorna TRUE apenas para um array TOTALMENTE vazio, ou seja:
ARRAY[]. Faz sentido, afinal 0 no array será um índice, e não, NADA.
Por isto, sempre é bom conhecer bem a função que você está utilizando e verificar possíveis outputs que você atribuirá (ou receberá como no meu caso) para as variáveis.
That's it!
sexta-feira, 29 de abril de 2011
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!
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!
Marcadores:
Banco de dados,
Cálculo dias campo Date,
Date,
Interval,
postgreSQL,
Timestamp
Assinar:
Postagens (Atom)