Pular para o conteúdo principal

Usando funções Transact-SQL em SQL Server 2000

Caro amigo leitor, a linguagem Transact-SQL tem varias funções que considero muito úteis no dia a dia de quem usa o banco de dados SQL Server da Microsoft. Neste artigo vou mostrar algumas dessas funções que considero mais úteis. Mostrarei exemplos de cada uma delas. Você pode verificar a sintaxe destas e de muitas outras funções consultando o Books Online do SQL Server.

1) Função DATEDIFF: Esta função é utilizada para calcular a diferença entre duas datas, seja esta diferença em segundos, minutos, horas, dias ou anos. Observe abaixo a execução da função e os resultados obtidos;

DECLARE @DataAtual DATETIME
SET @DataAtual = GETDATE()

SELECT DATEDIFF(SECOND,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de segundos desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(MINUTE,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de minutos desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(HOUR,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de horas desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(DAY,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de dias desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(MONTH,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de meses desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(YEAR,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de anos desde 01/01/2006 as 07:00 até o momento */


2) Funções CAST e CONVERT: Funções utilizadas para conversão de dados, veja abaixo a execução da função para conversão de alguns dados;

DECLARE @DataAtual DATETIME
SET @DataAtual = GETDATE()
/* Conversão de date em varchar */
SELECT 'A data de hoje é: ' + CAST(@DataAtual AS VARCHAR(11))
SELECT 'A data de hoje é: ' + CONVERT(VARCHAR(11),@DataAtual)

/* conversão de numeric em varchar */
SELECT 'O valor é: ' + CONVERT(VARCHAR(10),2456.67)
SELECT 'O valor é: ' + CAST(2456.67 AS VARCHAR(7))


3) Funções ISDATE e ISNUMERIC: Estas funções são utilizadas para verificar se determinada seqüência de caracteres é uma data valida (ISDATE) ou um dados numérico (ISNUMERIC), estas funções retornam 1 caso o parâmetro seja uma data valida ou um valor numérico ou 0 caso contrario. Veja abaixo os exemplos das duas funções;

SELECT ISDATE('01/34/2006') /* Retorna 0 - não é uma data valida */
SELECT ISDATE('04/07/2006') /* Retorna 1 - data valida */

SELECT ISNUMERIC(1235.785) /* Retorna 1 - é um dado numerico */
SELECT ISNUMERIC('1235.785') /* Retorna 1 pois apesar de se uma string é um dado numerico valido */
SELECT ISNUMERIC('12A') /* Retorna 0 - não é um valor numerico valido */

4) Função ISNULL: Esta função retorna um valor padrão caso o parâmetro recebido seja nulo. Veja o exemplo abaixo;

DECLARE @V INT /* V é NULL */
SELECT ISNULL(@V,0.00) /* O retorno da função será zero ao invés de NULL */
SET @V = 200
SELECT ISNULL(@V,0.00) /* O retorno da função agora será o valor da variável pois @V não é mais NULL */


5) Função LEFT: Retorna N caracteres a esquerda de uma seqüência. Veja o exemplo abaixo;

SELECT LEFT(‘Este é um teste’,3) /* Retorna Est */

6) Função RIGHT: Retorna N caracteres a direita de uma seqüência. Veja o exemplo abaixo;

SELECT LEFT(‘Este é um teste’,3) /* Retorna ste */

7) Função RTRIM: Esta função remove os espaços em branco à direita de uma string;

DECLARE @String VARCHAR(50)
SET @String = ' Esta é um string de teste '
SELECT RTRIM(@String)


8) Função LTRIM: Esta função remove os espaços em branco à esquerda de uma string;

DECLARE @String VARCHAR(50)
SET @String = ' Esta é um string de teste '
SELECT LTRIM(@String)

9) Função ROUND: Esta função é utilizada para arredondamento de dados numérico, no exemplo abaixo podemos ver a varias opções para utilização desta função;

DECLARE @Valor NUMERIC(9,3)
SET @Valor = 4638.896
SELECT ROUND(@Valor,2) /* Retorna 4638.900 */
SELECT ROUND(@Valor,1) /* Retorna 4638.900 */
SELECT ROUND(@Valor,0) /* Retorna 4639.000 */
SELECT ROUND(@Valor,-1) /* Retorna 4640.000 */
SELECT ROUND(@Valor,-2) /* Retorna 4600.000 */


10) Função DATEADD: Esta função é utilizada para somar datas, podemos somar uma determinada data com segundos, minutos horas,dias ou anos;

/* O primeiro parametro é a unidade que vamos somar a data: segundo, minuto, etc...
O segundo parametro é a quantidade a ser somada
O terceiro parametro é a data que recebera o incremento */
SELECT DATEADD(SECOND,1,GETDATE()) /* Soma 1 segundo à hora atual */
SELECT DATEADD(MINUTE,1,GETDATE()) /* Soma 1 minuto à hora atual */
SELECT DATEADD(HOUR,1,GETDATE()) /* Soma 1 hora à hora atual */
SELECT DATEADD(DAY,1,GETDATE()) /* Soma 1 dia à hora atual */
SELECT DATEADD(MONTH,1,GETDATE()) /* Soma 1 mes à hora atual */


Conclusão

Neste artigo foram apresentadas algumas das principais funções da linguagem Transact-SQL, estas funções são muito úteis aos desenvolvedores, espero que seja útil à todos. Sempre que puderem acessem o Books Online do SQL Server, é uma fonte de muita informação, principalmente sobre Transact-SQL. Até a próxima.

* Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2476

Comentários

Postagens mais visitadas deste blog

Tipos de dados no Sql Server

De vez em quando nos deparamos com uma questão: qual o tipo de dado deve ter um determinado campo? Para um DBA isso é um bom questionamento, pois com base nessa definição outras decisões serão tomadas. O que me motivou a pesquisar e escrever sobre isso foi a frase de um desnvolvedor: "Pouco importa se é varchar, char, text..., pra mim tudo é string."

Conceitos básicos de banco de dados - Integridade

A integridade diz respeito ao nível de confiança das informações do banco de dados, ou seja, a credibilidade das informações e à lógica das informações. Regras de restrição de integridade configuraram um banco de dados para ser alimentado por informações com características lógicas específicas, validadas como verdadeiras antes do seu armazenamento, diminuindo a probabilidade de falta de integridade no banco de dados.