Uma função muito útil do Postgres é a recuperação de dados de um Timestamp, abaixo executamos a extração de dia, mês e ano de um timestamp.
SELECT EXTRACT(DAY FROM TIMESTAMP '2016-02-16 00:15:00');
SELECT EXTRACT(MONTH FROM TIMESTAMP '2016-02-16 00:15:00');
SELECT EXTRACT(YEAR FROM TIMESTAMP '2016-02-16 00:15:00');
Também podemos executar de uma outra forma para obter o mesmo resultado:
SELECT date_part('YEAR', timestamp '2014-04-25 08:44:21');
SELECT date_part('MONTH', timestamp '2014-04-25 08:44:21');
SELECT date_part('DAY', timestamp '2014-04-25 08:44:21');
Um blog de tecnologia que aborda diversos assuntos sobre tecnologia e desenvolvimento web.
terça-feira, 23 de fevereiro de 2016
Criando TRIGGERS no Postgres 9.2
Um dos recursos mais simples de um SGDB e comuns à serem utilizados são as TRIGGERS ou "Gatilhos', estes executam um processo antes ou depois de uma determinada ação no banco de dados. No exemplo abaixo é inserido um registro em uma tabela após uma tabela referente sofrer alteração em seus registros.
O primeiro passo é criar uma função que será executada toda vez que a tabela referente sofrer alteração.
OBS: A variável NEW se trata dos dados que estão vindo da alteração da tabela referente.
CREATE TRIGGER TR_atualiza_tabela AFTER INSERT OR UPDATE ON tabela_referente
FOR EACH ROW EXECUTE PROCEDURE atualiza_tabela();
O primeiro passo é criar uma função que será executada toda vez que a tabela referente sofrer alteração.
OBS: A variável NEW se trata dos dados que estão vindo da alteração da tabela referente.
CREATE OR REPLACE FUNCTION atualiza_tabela () RETURNS trigger as $registro$
BEGIN
INSERT INTO tabelaX (campo1, campo2, campo3)
VALUES ( NEW.dado1, NEW.dado12, NEW.dado3,
);
RETURN NEW;
END;
$registro$ LANGUAGE plpgsql;
Agora criamos literalmente a TRIGGER que será acionada toda vez que a tabela referente sofrer alteração, chamando a função que criamos acima.
FOR EACH ROW EXECUTE PROCEDURE atualiza_tabela();
Fonte: http://www.postgresql.org/docs/9.2/static/plpgsql-trigger.html
quinta-feira, 18 de fevereiro de 2016
Convertendo caracteres no Postgres
Uma função muito útil no PostgresSQL é a conversão de encoding de caracteres de um tipo para outro. No exemplo abaixo desejo converter um caracter que está no tipo LATIN1 para o tipo UTF-8.
SELECT CONVERT_FROM(convert_to('Brotas De Macaúbas', 'LATIN1'), 'UTF-8')
quinta-feira, 7 de janeiro de 2016
Utilizando aplicativos Windows no Linux
Nos dias atuais a utilização do Linux tem crescido muito por parte dos usuários comuns, no entanto alguns aplicativos comuns nativos para windows ainda não tem a versão apropriada para o Linux ou simplesmente não existe. Neste caso pode-se utilizar o aplicativo Wine que se torna uma plataforma para aplicativos Windows rodarem no linux... para efetuar sua instalação é muito simples. Segue códigos de instalação para o Ubuntu.
Primeiro vamos habilitar o uso de aplicativos x86 caso ainda não esteja habilitado:
Vamos adicionar o repositório que contém o aplicativo:
Vamos atualizar nossa lista de repositórios:
Agora vamos instalar o Wine:
Voilá! agora pode baixar um arquivo .EXE e para instalar o mesmo neste formato basta cliar com o botão direito sobre o mesmo e mandar executar com o Wine e pronto!!!
Primeiro vamos habilitar o uso de aplicativos x86 caso ainda não esteja habilitado:
sudo dpkg --add-architecture i386
Vamos adicionar o repositório que contém o aplicativo:
sudo add-apt-repository ppa:wine/wine-builds
Vamos atualizar nossa lista de repositórios:
sudo apt-get update
Agora vamos instalar o Wine:
sudo apt-get install --install-recommends winehq-devel
Voilá! agora pode baixar um arquivo .EXE e para instalar o mesmo neste formato basta cliar com o botão direito sobre o mesmo e mandar executar com o Wine e pronto!!!
terça-feira, 22 de dezembro de 2015
Mantendo a versão do python atualizada - Ubuntu
Uma ferramenta útil que descobri é o pyenv que faz o gerenciamento das versões do python instaladas na sua máquina e permite tornar uma versão global facilmente.. segue os comandos para execução:
1- sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev git
3- após efetuar a instalação caso ainda não existe ele vai emitir um alerta dizendo que algumas configurações do pyenv ainda não existem e que você precisa adicionar no arquivo .bash_profile localizado na home do sistema. Caso este arquivo ainda não existe pode criar e colar as linha citadas por ele para serem adicionadas por ele no terminal.
4- Após isso verifique se o pyenv foi instalado com sucesso executando o código no terminal: pyenv se o mesmo retornar opções disponíveis para o comando o mesmo foi instalado corretamente. O pŕoximo passo é instalar o python mais recente e torná-lo global.
5- A última versão disponível no momento é a 3.5, essa que vamos instalar com o comando: pyenv install 3.5.1
6- Agora você está com a última versão do python, para torná-la global basta executar o comando agora pyenv global 3.5.1 e Voilá! seu python está global e atualizado!
7- Para efetuar o teste basta digitar o mando no terminal python e dar um enter e o mesmo irá apresentar uma tela exibindo a versão atual do python. :)
quinta-feira, 24 de setembro de 2015
Cores hexadecimal randômica com JavaScript
Um script simples mas que pode auxiliar no dia-a-dia é retornar uma simples cor em hexadecimal utilizando javascript.
function randColors() {
return '#' + (function co(lor) {
return (lor += [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f'][Math.floor(Math.random() * 16)])
&& (lor.length == 6) ? lor : co(lor);
})('');
}
function randColors() {
return '#' + (function co(lor) {
return (lor += [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f'][Math.floor(Math.random() * 16)])
&& (lor.length == 6) ? lor : co(lor);
})('');
}
sexta-feira, 4 de setembro de 2015
Ping de portas com PAPING
O tão famoso ping não se torna útil na hora de descobrir se uma porta específica se encontra aberta.. para isso precisamos utilizar programas específicos. no exemplo abaixo utilizo o programa PAPING.EXE onde testo a resposta do google.com na porta 80 e recebo os pacotes de retorno.
Assinar:
Postagens (Atom)

