Funções SQL Server 2005
Canal: SQL Server | Autor: Thiago Carlos de Alencar | Publicado em: 08/04/2009 | Views: 5.040Ola galera, boa tarde. Quanto tempo que não escrevo um artigo. Infelizmente esse artigo de hoje não vai poder se continuação da modelagem de dados do E-commerce, pois não estou em casa com e os scripts do mesmo estão em um Server. Vou tentar escrever na semana que vem uma boa parte da modelagem para darmos alguns passos na criação de procedures, triggers e etc. Hoje vamos falar sobre funções do SQL Server 2005, fiquem atento desenvolvedores de plantão.rsrs.
No SQL Server 2005 o T-SQL engloba diversas funções para que o desenvolvedor tenha maior flexibilidade na hora de escrever o código, facilitando a sua rotina no dia-a-dia. Essas funções podem ser funções de agregação, função data e hora, texto, funções de informações do sistema e etc.
As funções de metadados do SQL retornam informações do tipo, nome do banco, Server, nome do usuário e etc. Essas funções nos ajudam no desenvolvimento de diversos processo, por exemplo: Se precisarmos desenvolver uma procedure que lista todos os objetos de banco de dados em uma instancia, poderíamos escrever o código para pesquisarmos apenas nos banco de dados dos usuário ou ate mesmo passar o id do database como padrão para procurar todos os objetos de um banco em questão.
No exemplo abaixo temos um select que retorna o nome do usuário conectado naquela sessão e o nome do DataBase atual. Ex:
Resultado:

Você também pode especificar o id do banco que você deseja ter informações ou vice-versa, conforme query abaixo: Ex:
Resultado:

Essas informações encontram-se nas views de sistema, a query abaixo retorna o informações sobre as bases de dados da intancia em qual você está conectado.
Alguma outras funções de metadados podem se encontrada neste link:
http://msdn.microsoft.com/pt-br/library/ms187812.aspx
Em alguns casos precisamos retornar informações com precisões de horas, comparar datas, adicionar horas ou ate mesmo dia a partir de X data.
GETDATE() - Retorna a data e hora atual do servidor com precisão em milisegundos. Ex:
Resultado:

DATEPART()
Retorna um inteiro que representa o datepart especificado da data especificada, a query abaixo retorna o numero de semanas que tivemos no ano atual, você poderia usar uma outra data no lugar do getDate(). Ex:
Resultado:

Mais informações sobre o datepart podem ser encontradas no link abaixo:
http://msdn.microsoft.com/pt-br/library/ms174420.aspx
DATEADD()
Retorna uma date especificada com o intervalo number especificado (inteiro assinado) adicionado à datepart especificada dessa date.
Os selects abaixo adicionam dia, mês e ano em cima do valor da data atual, usando a função dateAdd(). EX:
Resultado:

CONVERT
Usada para converter tipos de dados seguindo um determinado padrão. Frequentemente precisamos transformar campos de data em texto, para isso usamos a função convert. Ela recebe três argumentos. O tipo de dados resultante, o valor a ser convertido e o codigo da formatação. No exemplo abaixo temos duas querys que tranformam a data em um varchar(50), a única coisa que mudamos de uma para a outra fou o padrão. Observem que a segunda query esta no padrão brasileiro dd/mm/yyyy.Ex:
Resultado:

No SQL Server 2005 o T-SQL engloba diversas funções para que o desenvolvedor tenha maior flexibilidade na hora de escrever o código, facilitando a sua rotina no dia-a-dia. Essas funções podem ser funções de agregação, função data e hora, texto, funções de informações do sistema e etc.
Funções de Metadados
As funções de metadados do SQL retornam informações do tipo, nome do banco, Server, nome do usuário e etc. Essas funções nos ajudam no desenvolvimento de diversos processo, por exemplo: Se precisarmos desenvolver uma procedure que lista todos os objetos de banco de dados em uma instancia, poderíamos escrever o código para pesquisarmos apenas nos banco de dados dos usuário ou ate mesmo passar o id do database como padrão para procurar todos os objetos de um banco em questão.
No exemplo abaixo temos um select que retorna o nome do usuário conectado naquela sessão e o nome do DataBase atual. Ex:
SELECT
SUSER_NAME() AS NOME_USUARIO,
DB_NAME() AS [DATABASE] , -- CURRENT DATABASEResultado:

Você também pode especificar o id do banco que você deseja ter informações ou vice-versa, conforme query abaixo: Ex:
SELECT
SUSER_NAME() AS NOME_USUARIO,
DB_NAME('6') AS [DATABASE],
DB_ID('AREA_BACKUP') AS ID_DATABASE,Resultado:

Essas informações encontram-se nas views de sistema, a query abaixo retorna o informações sobre as bases de dados da intancia em qual você está conectado.
SELECT * FROM SYS.SYSDATABASESAlguma outras funções de metadados podem se encontrada neste link:
http://msdn.microsoft.com/pt-br/library/ms187812.aspx
Funções de tratamento data/hora.
Em alguns casos precisamos retornar informações com precisões de horas, comparar datas, adicionar horas ou ate mesmo dia a partir de X data.
GETDATE() - Retorna a data e hora atual do servidor com precisão em milisegundos. Ex:
SELECT GETDATE() AS DATA_ATUAL_COM_PRECISAOResultado:

DATEPART()
Retorna um inteiro que representa o datepart especificado da data especificada, a query abaixo retorna o numero de semanas que tivemos no ano atual, você poderia usar uma outra data no lugar do getDate(). Ex:
SELECT DATEPART(WK, GETDATE()) AS SEMANA_DO_ANOResultado:

Mais informações sobre o datepart podem ser encontradas no link abaixo:
http://msdn.microsoft.com/pt-br/library/ms174420.aspx
DATEADD()
Retorna uma date especificada com o intervalo number especificado (inteiro assinado) adicionado à datepart especificada dessa date.
Os selects abaixo adicionam dia, mês e ano em cima do valor da data atual, usando a função dateAdd(). EX:
SELECT DATEADD(DAY, 1, getDate()) AS ADICIONA_DIA
GO
SELECT DATEADD(month, 1, getDate()) AS ADICIONA_MES
GO
SELECT DATEADD(YEAR, 1, getDate()) AS ADICIONA_ANOResultado:

CONVERT
Usada para converter tipos de dados seguindo um determinado padrão. Frequentemente precisamos transformar campos de data em texto, para isso usamos a função convert. Ela recebe três argumentos. O tipo de dados resultante, o valor a ser convertido e o codigo da formatação. No exemplo abaixo temos duas querys que tranformam a data em um varchar(50), a única coisa que mudamos de uma para a outra fou o padrão. Observem que a segunda query esta no padrão brasileiro dd/mm/yyyy.Ex:
SELECT CONVERT(VARCHAR(50), GETDATE(), 101) AS [PADRAO AMERICANO]--PADRÃO AMERICANO
GO
SELECT CONVERT(VARCHAR(50), GETDATE(), 103) AS [PADRAO BRASILEIRO]--PADRÃO BRAS.Resultado:

Esta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado
crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra.
Você não pode criar obras derivadas.
Vote no artigo:








