Developing

Archive for the ‘SQL Server’ Category

SQL Server – varchar(max) VS varchar(n)

Introduction

Eu sempre me perguntei qual seria a diferença entre varchar(max), nvarchar(max) e varchar(n) ou nvarchar(n) (varchar com tamanho definido por exemplo(varchar(255)). Por isso decidi dar uma pesquisada e compartilhar o que eu descobri.

Continue Lendo

SQL Server – Remover Acentos

Introdução

Depois de muito tempo sem nenhum post, de tempos de muita correria mas, marcado também por entregas de ótimos projetos, mostrarei um código bem simples, mas, extremamente útil.

Na verdade não fui em quem fiz, peguei o código no link mostrado no fim do artigo nas referências. Existem muitas formas de fazer essa funcionalidade, essa que eu peguei foi a primeira que achei mas gostei dela.

Continue Lendo

SQL Server – Open Transactions Details

Introduction

Sometimes we need to see if there is an open transaction.

Nesse post mostrarei como ver quais as transações estão abertas no SQL Server.

Continue Lendo

SQL Server – nvarchar(max) Limit

Introduction

No SQL Server 2005 a Microsoft aprimorou três tipos de dados. O VARCHAR(MAX), NVARCHAR(MAX) and VARBINARY(MAX).

O tipo de dado VARCHAR (MAX)  indica que o tamanho máximo de armazenamento para o tipo de dado VARCHAR é 2 ^ 31-1 bytes. Os tipos de dados NVARCHAR(MAX) indicam que o tamanho máximo de armazenamento do tipo NVARCHAR é de 2 ^ 31-1 bytes. E o tipo VARBINARY(MAX) indica que o tamanho máximo de armazenamento para o tipo de dado VARBINARY é 2 ^ 31-1 bytes.

Continue Reading

SQL Server – Variáveis Table

Introdução

Variável tipo TABLE nada mais é do que um tipo especial de variável que pode ser utilizada para armazenamento temporário de dados, de maneira similar a tabelas temporárias. Entretanto, ao invés de serem armazenadas no banco de sistema TEMPDB (onde ficam as tabelas temporárias), são armazenadas em memória.

Continue Lendo

SQL Server – DATEDIFF

Função

Retorna um número correspondente a difereça entre a data/hora de dois valores.

Sintaxe

DATEDIFF ( DatePart , StartDate , EndDate )

Argumentos

DatePart: Especifica em que unidade o resultado será retornado. A tabela a seguir mostra todos os datepart válidos. Valores que não sejam esses não são válidos.

DatePart Abreviações
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns

StartDate: Valor inicial. Pode ser um valor time, date, smalldatetime, datetime, datetime2 ou datetimeoffset, uma expressão, uma expressão de coluna, uma variável definida pelo usuário ou uma cadeia de caracteres. O startdate é subtraído de enddate.

EndDate: Similar so StartDate, porém, representa o valor final, o qual será subtraído por um número.

Tipo de Retorno

int

Exemplos

DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate ='2011-06-05'
SET @EndDate ='2011-08-05'

SELECT DATEDIFF(Year, @StartDate, @EndDate) AS NewDate
--Valor retornado = 0 anos

SELECT DATEDIFF(quarter, @StartDate, @EndDate) AS NewDate
--Valor retornado = 1 quarto

SELECT DATEDIFF(Month, @StartDate, @EndDate) AS NewDate
--Valor retornado = 2 meses

SELECT DATEDIFF(dayofyear,@StartDate, @EndDate) AS NewDate
--Valor retornado = 61 dias

SELECT DATEDIFF(Day, @StartDate, @EndDate) AS NewDate
--Valor retornado = 61 dias

SELECT DATEDIFF(Week, @StartDate, @EndDate) AS NewDate
--Valor retornado = 8 semanas

SELECT DATEDIFF(Hour, @StartDate, @EndDate) AS NewDate
-Valor retornado = 1464 horas

SELECT DATEDIFF(minute, @StartDate, @EndDate) AS NewDate
--Valor retornado = 87840 minutos

SELECT DATEDIFF(second, @StartDate, @EndDate) AS NewDate
--Valor retornado = 5270400 segundos

DECLARE @StartDate2 DATETIME
DECLARE @EndDate2 DATETIME
SET @StartDate2 ='2011-06-05'
SET @EndDate2 ='2011-06-06'

SELECT DATEDIFF(millisecond, @StartDate2, @EndDate2) AS NewDate
--Valor retornado = 86400000 milisegundos

Referências

Veja a biblioteca da função DATEDIFF.

Veja Também

SQL Server – TimeStamp

SQL Server – Variáveis Table

_____

Não esqueça de deixar seu comentário, critica, elogio, dúvida e etc. Ele é muito importante para a melhoria do blog.

SQL Server – TimeStamp

Introdução

Muitos confundem o TimeStamp do SQL Server  com o TimeStamp do ANSI, achando que ambos se referem ao tipo de dado onde é possível armazenar data e hora no mesmo campo. Porém os dois são completamente diferentes apesar de possuírem o mesmo nome.

O ANSI prevê os tipos Date, Time e TimeStamp onde:

  • O tipo date armazena somente data;
  • O tipo time somente hora;
  • E o tipo timestamp armazena ambos, tanto a data quanto a hora.

No SQL Server o tipo Date e o tipo Time não existem, porém, existe o tipo DateTime que armazena tanto a hora quanto a data, sendo assim, possui a mesma funcionalidade que o tipo TimeStamp do ANSI.

Mas e agora, o que significa então o tipo TimeStamp do SQL Server?

Continue Lendo