Browsed by
Author: José Diz

Calcular tempo decorrido entre duas datas

Calcular tempo decorrido entre duas datas

Como calcular a idade de uma pessoa em anos, meses e dias e utilizando T-SQL? Se pesquisar na web, encontrará vários métodos “mágicos” mas que falham em algum momento. E quantos dias úteis já se passaram desde que aquela fatura venceu? Ou ainda quantas horas úteis foram dedicadas pelo colaborador a um projeto, ao longo … Continue Lendo “Calcular tempo decorrido entre duas datas”

Como melhorar a performance ao ajustar o nível de compatibilidade do banco de dados

Como melhorar a performance ao ajustar o nível de compatibilidade do banco de dados

– “O servidor novo é muito mais potente do que o antigo mas o banco de dados está mais lento!”, reclama fulano. – “Você alterou o nível de compatibilidade?”, pergunta cicrano. Você já presenciou esse diálogo alguma vez, principalmente após uma migração de versão antiga para versão mais recente do SQL Server? Versão do mecanismo … Continue Lendo “Como melhorar a performance ao ajustar o nível de compatibilidade do banco de dados”

Concatenação de cadeias de caracteres (strings concat)

Concatenação de cadeias de caracteres (strings concat)

Uma operação frequente é a de unir várias cadeias de caracteres (strings) em um único texto. Por exemplo, considerando-se que a informação de endereço está armazenada nas seguintes partes e que é necessário exibir o endereço completo como um único texto Rua Santana do Paraíba, 820 (Centro) temos que essa ação se realiza através da … Continue Lendo “Concatenação de cadeias de caracteres (strings concat)”

Qual é mais rápido: CASE, CHOOSE ou IIF?

Qual é mais rápido: CASE, CHOOSE ou IIF?

E novamente mais um artigo da série “Qual é mais rápido”, com tira-teima entre diferentes casos do SQL Server. Às vezes me deparo com respostas de tópicos de fóruns em que determinado usuário cita que IIF() é ruim e sugerindo que se deve utilizar o CASE no lugar de IIF(). É assim mesmo? 😕 As … Continue Lendo “Qual é mais rápido: CASE, CHOOSE ou IIF?”

Como datas & horas são armazenadas no SQL Server?

Como datas & horas são armazenadas no SQL Server?

Com elevada frequência tenho visto dúvidas sobre como o SQL Server armazena colunas com tipo de dados que contenha data e/ou hora. Recentemente li em tópico de fórum alguém mencionando que a data é armazenada de acordo com o idioma do sistema operacional. 😮 Se (não) é assim, então como são armazenados data & horário … Continue Lendo “Como datas & horas são armazenadas no SQL Server?”

Novo tipo de dados para data & horário

Novo tipo de dados para data & horário

Como você decide a forma de armazenar data no banco de dados: smalldatetime, datetime ou char(8)? E o horário? Seja como for, a Microsoft lançou novos tipos de dados para armazenamento de data e hora. Afinal, Pois é… 1. Introdução Para armazenar data e horário até a versão 2005 do SQL Server somente existiam os … Continue Lendo “Novo tipo de dados para data & horário”

Paginação de resultado de consulta SQL

Paginação de resultado de consulta SQL

Páginação é uma técnica que permite exibir o resultado de consultas SQL em partes, evitando inclusive sobrecarregar a aplicação (principalmente quando rodando em dispositivo móvel). 1. Introdução Recentemente publiquei o artigo “Novos recursos de programação para SQL Server” em que foram relacionados novos recursos de programação T-SQL, desde a versão 2012 até a versão 2019. … Continue Lendo “Paginação de resultado de consulta SQL”

Utilizar 23:59:59.997 é uma prática ruim?

Utilizar 23:59:59.997 é uma prática ruim?

Em fórum de SQL Server o autor do tópico Update em Campo DATETIME questiona “Poderiam me dizer/explicar porque no SQL não está aceitando fazer um update de um campo datetime para ‘2019-01-01 23:59:59:999’”? Como resposta, foi postada a seguinte informação Na documentação do tipo de dados datetime consta que o horário pode ir das 00:00:00 … Continue Lendo “Utilizar 23:59:59.997 é uma prática ruim?”

“T-SQL Window Functions: For data analysis and beyond” – impressões iniciais

“T-SQL Window Functions: For data analysis and beyond” – impressões iniciais

Ele chegou um dia antes da data prevista. Achei-o magro, comparado com os anteriores. Mas chegou. Foi encomendado ano passado, ainda na vigência da Black Friday de 2019. Às vezes encomendo livros em livrarias do exterior quando compensa pagar o frete do exterior para o Brasil do que comprar no País. Mas como na época … Continue Lendo ““T-SQL Window Functions: For data analysis and beyond” – impressões iniciais”

Retirando acentuação (e caracteres “invisíveis”) com a função TRANSLATE

Retirando acentuação (e caracteres “invisíveis”) com a função TRANSLATE

Para instalações que utilizam instâncias com SQL Server 2017, é o momento de otimizar os programas em SQL para tirar proveito dos novos recursos. No artigo “Novos recursos de programação para SQL Server” foram relacionados diversos recursos para programação, desde a versão 2012 do SQL Server. Agora, neste artigo detalho uma das aplicações da  função … Continue Lendo “Retirando acentuação (e caracteres “invisíveis”) com a função TRANSLATE”

Uso da função STRING_AGG para concatenar faixa de linhas de uma coluna

Uso da função STRING_AGG para concatenar faixa de linhas de uma coluna

1. Introdução Uma solicitação recorrente em fóruns de SQL Server é como concatenar o conteúdo de uma coluna, ao longo de uma faixa de linhas, em uma única linha e separando os valores por delimitador. Por exemplo, certa vez deparei com um caso em que o resultado de uma consulta retornava duas linhas com várias … Continue Lendo “Uso da função STRING_AGG para concatenar faixa de linhas de uma coluna”

Novos recursos de programação para SQL Server

Novos recursos de programação para SQL Server

Beta. Ao anunciar nova versão do SQL Server, a Microsoft informa alguns dos novos recursos que virão bem como melhorias nos recursos já disponíveis. Quando a primeira versão beta é liberada publicamente, artigos começam a ser publicados sobre a futura versão tanto na mídia especializada como em blogs pessoais técnicos. Ao longo dos meses seguintes … Continue Lendo “Novos recursos de programação para SQL Server”

Modelos de manutenção do software SQL Server

Modelos de manutenção do software SQL Server

A respeito de atualização do software SQL Server são comuns dúvidas como, por exemplo, se é necessário aplicar o service pack 1 antes de aplicar o service pack 2. Este post relaciona os modelos atuais de manutenção que a Microsoft oferece para atualização do software SQL Server e responde a algumas das dúvidas frequentes sobre … Continue Lendo “Modelos de manutenção do software SQL Server”

Particionamento de tabela na edição Express

Particionamento de tabela na edição Express

A edição Express possui várias limitações, sendo que uma delas é o tamanho máximo de 10 GiB para o banco de dados. Se este valor está próximo, é necessário adquirir a edição Standard. Mas talvez não… 1. Introdução Em recente tópico em fórum de SQL Server o autor perguntou sobre qual a melhor estratégia com … Continue Lendo “Particionamento de tabela na edição Express”

Programação e otimização de consultas distribuídas

Programação e otimização de consultas distribuídas

Consultas distribuídas são aquelas em que são acessadas múltiplas fontes de dados, heterogêneas ou não, sendo que essas fontes de dados podem estar no mesmo computador ou mesmo em computadores diferentes; sistemas operacionais similares ou diferentes; mesmo gerenciador de banco de dados ou gerenciadores de bancos de dados diferentes. 1. Introdução Em um intervalo de … Continue Lendo “Programação e otimização de consultas distribuídas”

Obter o enésimo elemento de uma lista

Obter o enésimo elemento de uma lista

Sabe aquelas colunas cujo conteúdo é uma lista composta de diversos valores, separados por algum caractere? Algo assim: ‘Rua|Santos e Almeida|180||Centro|98900-300|Caripibuna|XX’ E então, como obter o enésimo elemento sem ter que fazer “string split” de todo o conteúdo da coluna? 1. Introdução Há situações em que múltiplos valores estão armazenados em uma coluna, também denominados … Continue Lendo “Obter o enésimo elemento de uma lista”

Alas e pivôs

Alas e pivôs

No dia a dia de colaboração em fóruns de SQL Server percebo dúvidas que são recorrentes e uma delas é sobre pivô (ou pivot). Embora a definição formal seja “eixo vertical fixo, à volta da qual gira uma peça móvel”, em SQL “pivotar” é muito mais do que transformar linhas em colunas. E é com … Continue Lendo “Alas e pivôs”