50
Daniel Paulo [email protected]

Daniel Paulo [email protected]. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Embed Size (px)

Citation preview

Page 1: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Daniel [email protected]

Page 2: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Para este capítulo é necessário incluir o Bancode dados PEDIDO localizado no C:\dadosEXEC sp_attach_db@dbname =‘PEDIDOS’,@filename1=‘c:\dados\pedidos_tabelas.mdf’,@filename2=‘c:\dados\pedidos_indices.ndf’,@filename3=‘c:\dados\pedidos_log.ldf’

Obs: Os modelos estão nos arquivos STRUCT_EMPREGADOS.jpg e STRUCT_PEDIDOS.jpg

Page 3: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Consultando todas as colunas

SELECT * FROM <nome da tabela>

Consultar todas as colunas da tabela Empregados dobanco de dados Pedidos

USE PEDIDOS;

SELECT * FROM EMPREGADOS

Page 4: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Consultando colunas Específicas

SELECT <coluna1> , <coluna2> , .. FROM <nome da tabela>

Consultar as colunas CODFUN, NOME E SALARIO da tabela Empregados

SELECT CODFUN, NOME, SALARIO FROM EMPREGADOS;

Page 5: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Redefinindo os indentgificadores de coluna com uso de alias

SELECT <coluna1> [[AS] <nome_alias>], <coluna2> [[AS] <nome_alias>]

FROM <tabela>

Page 6: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Apelido contendo caracteres especiais (espaço)SELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS

Salario, DATA_ADMISSAO AS [Data de Admissão] FROM EMPREGADOS;

-- Campo calculadoSELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS Salario, SALARIO * 1.10 [Salário com 10% de Aumento]FROM EMPREGADOS;

Page 7: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Laboratório 1 página 190

Page 8: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Ordenando Dados-- Ordenando os dados na ordem ascendenteSELECT * FROM EMPREGADOS ORDER BY NOMESELECT * FROM EMPREGADOS ORDER BY NOME ASCSELECT * FROM EMPREGADOS ORDER BY SALARIOSELECT * FROM EMPREGADOS ORDER BY SALARIO ASCSELECT * FROM EMPREGADOS ORDER BY DATA_ADMISSAO-- Ordenando os dados na ordem decrescenteSELECT * FROM EMPREGADOS ORDER BY NOME DESCSELECT * FROM EMPREGADOS ORDER BY SALARIO DESCSELECT * FROM EMPREGADOS ORDER BY DATA_ADMISSAO DESC

Obs: Caso não seja especificado ASC ou DESC o padrão é ASC

Page 9: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Ordenando por nome da colunaSELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS Salario, SALARIO * 1.10 [Salário com 10% de Aumento]FROM EMPREGADOSORDER BY 4;

Page 10: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Ordenando várias colunasSELECT COD_DEPTO, NOME, DATA_ADMISSAO,

SALARIO FROM EMPREGADOS ORDER BY COD_DEPTO, SALARIO--SELECT COD_DEPTO, NOME, DATA_ADMISSAO,

SALARIO FROM EMPREGADOS ORDER BY COD_DEPTO DESC, SALARIO

Page 11: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

ORDER BY com TOP O resultado é selecionado a partir do conjunto ordenado

-- Lista os 5 primeiros empregados de acordo com a chave -- primáriaSELECT TOP 5 * FROM EMPREGADOS

-- Lista os 5 empregados mais antigosSELECT TOP 5 * FROM EMPREGADOS ORDER BY DATA_ADMISSAO

Page 12: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Lista os 5 empregados mais novosSELECT TOP 5 * FROM EMPREGADOS ORDER BY DATA_ADMISSAO DESC

-- Lista os 5 empregados que ganham menosSELECT TOP 5 * FROM EMPREGADOS ORDER BY SALARIO

-- Lista os 5 empregados que ganham maisSELECT TOP 5 * FROM EMPREGADOS ORDER BY SALARIO DESC

Page 13: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

ORDER BY com TOP WITH TIES-- Listar os 7 funcionários que ganham maisSELECT TOP 7 CODFUN, NOME, SALARIOFROM EMPREGADOS ORDER BY SALARIO DESC-- Listar os 7 funcionários que ganham mais inclusive os que

possuem mesmo valorSELECT TOP 7 WITH TIES CODFUN, NOME, SALARIOFROM EMPREGADOS ORDER BY SALARIO DESC-- Mostrar 10% das linhas da tabela EmpregadosSELECT TOP 10 PERCENT WITH TIES * FROM EMPREGADOS ORDER BY SALARIO DESC

Page 14: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Filtrando consultas

Cláusula para a definição de critérios de com o objetivo de filtrar o resultado de uma consulta.

Obs: Neste capítulo a funcionalidade do WHERE é demonstrada apenas para filtragem de dados

Page 15: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Consultando com operadores de comparação de string= (igual)<> ou != (desigual)> (maior que)< (menor que)>= (maior que ou igual)<= (menor que ou igual)

Page 16: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Seleciona todos os Empregados que recebem menos de 1.000SELECT * FROM Empregados WHERE SALARIO < 1000ORDER BY SALARIO-- Seleciona todos os Empregados que recebem mais de 5.000SELECT * FROM Empregados WHERE SALARIO > 5000ORDER BY SALARIO-- Seleciona todos os Empregados que estão alocados nos-- departamento com código menor e igual a 3SELECT * FROM Empregados WHERE COD_DEPTO <= 3ORDER BY COD_DEPTO

Page 17: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Seleciona os empregados do código de departamento = 2SELECT * FROM Empregados WHERE COD_DEPTO = 2ORDER BY COD_DEPTO-- Seleciona os empregados do código de departamento -- diferente de 2SELECT * FROM Empregados WHERE COD_DEPTO <> 2ORDER BY COD_DEPTO

Page 18: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Consultando com Operadores Lógicos

AND - Operador que combina duas expressões e exige que sejam verdadeira, ou seja, TRUE

OR - Verifica se uma ou ambas expressões retornam TRUE

NOT - Avalia se no resultado, se a primeira expressão é TRUE e a segunda FALSE

Page 19: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Seleciona os empregados do código de -- departamento 2 e que ganham mais de 5000

SELECT * FROM EMPREGADOS WHERE COD_DEPTO = 2 AND SALARIO > 5000-- Seleciona os empregados do código de -- departamento 2 ou que ganham mais de 5000SELECT * FROM EMPREGADOSWHERE COD_DEPTO = 2 OR SALARIO > 5000

Page 20: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Execute a consulta abaixo e apresente o resultado

SELECT * FROM EmpregadosWHERE COD_DEPTO = 2 AND COD_DEPTO = 5

Page 21: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

/* Na consulta abaixo nenhum valor retornará, pois é

impossível, no modelo atual, um empregado ser ter o código de departamento 2 e 5 ao mesmo tempo

*/SELECT * FROM EmpregadosWHERE COD_DEPTO = 2 AND COD_DEPTO = 5-- O correto neste caso é utilizar o operador ORSELECT * FROM EmpregadosWHERE COD_DEPTO = 2 OR COD_DEPTO = 5

Page 22: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Mais ExemplosSELECT * FROM EMPREGADOSWHERE SALARIO >= 3000 AND SALARIO <= 5000ORDER BY SALARIO--SELECT * FROM EMPREGADOSWHERE SALARIO < 3000 OR SALARIO > 5000ORDER BY SALARIO--SELECT * FROM EMPREGADOSWHERE NOT (SALARIO >= 3000 AND SALARIO <= 5000)ORDER BY SALARIO

Page 23: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Consultando um intervalo de valoresA cláusula BETWEEN filtra dados com base em uma faixa de

valores-- Pesquisar intervalo ENTRE dois valoresSELECT * FROM EMPREGADOSWHERE SALARIO >= 3000 AND SALARIO <= 5000ORDER BY SALARIO-- OUSELECT * FROM EMPREGADOSWHERE SALARIO BETWEEN 3000 AND 5000ORDER BY SALARIO

Page 24: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Seleciona os empregados com data de -- admissão de 01/01/2000 até 31/12/2000, -- ordenando pela Data de admissão

SELECT * FROM EmpregadosWHERE DATA_ADMISSAO BETWEEN '2000.1.1' AND '2000.12.31'ORDER BY DATA_ADMISSAO

Page 25: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Pesquisar valores FORA do intervaloSELECT * FROM EMPREGADOSWHERE SALARIO < 3000 OR SALARIO > 5000ORDER BY SALARIO-- OUSELECT * FROM EMPREGADOSWHERE SALARIO NOT BETWEEN 3000 AND 5000ORDER BY SALARIO

Page 26: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Laboratório 2 página 191

Page 27: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Consultando com base em strings de caractereOperador Like – Comparar cadeias de caracteres.

Utiliza o caracter % como curinga. -- Seleciona todos Empregados que possuam nomes que -- começando por MARIASELECT * FROM EMPREGADOSWHERE NOME LIKE 'MARIA%' -- Seleciona empregados que possuam nomes que -- começando por MASELECT * FROM EMPREGADOSWHERE NOME LIKE 'MA%’

Page 28: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Seleciona empregados que possuam nomes que começando por MSELECT * FROM EMPREGADOS WHERE NOME LIKE 'M%' -- Nomes terminando por MARIASELECT * FROM EMPREGADOS WHERE NOME LIKE '%MARIA’-- Nomes terminando por SOUZASELECT * FROM EMPREGADOS WHERE NOME LIKE '%SOUZA‘-- Nomes terminando por ZASELECT * FROM EMPREGADOS WHERE NOME LIKE '%ZA'-- Nomes contendo MARIA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%MARIA%'-- Nomes contendo SOUZASELECT * FROM EMPREGADOS WHERE NOME LIKE '%SOUZA%'-- Nomes contendo ZASELECT * FROM EMPREGADOS WHERE NOME LIKE ‘%ZA%'

Page 29: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Outro caractere coringa é o ( _ ) que representaapenas um caractere-- Nomes que comecem por qualquer caractere e o segundo

seja a letra ASELECT * FROM Empregados WHERE NOME LIKE '_A%‘-- Nomes cuja penúltima letra seja ZSELECT * FROM Empregados WHERE NOME LIKE '%Z_'-- Nomes que terminem com LU seguido de 3 letras

quaisquerSELECT * FROM Empregados WHERE NOME LIKE '%LU___'

Page 30: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Fornecendo várias opções para um determinado caractere

-- Nomes contendo SOUZA ou SOUSASELECT * FROM EMPREGADOSWHERE NOME LIKE '%SOU[SZ]A%'

-- Nomes contendo José ou JoseSELECT * FROM EMPREGADOS WHERE NOME LIKE '%JOS[EÉ]

%'

Page 31: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Operador NOT LIKE

-- Nomes que não contenham a palavra MARIASELECT * FROM EMPREGADOSWHERE NOME NOT LIKE '%MARIA%'

-- Nomes que não contenham a sílaba MASELECT * FROM EMPREGADOSWHERE NOME NOT LIKE '%MA%'

Page 32: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Consultando valores pertencentes ou não a uma lista de elementos-- Operador IN com valores numéricosSELECT * FROM EMPREGADOS WHERE COD_DEPTO IN (1,3,4,7)ORDER BY COD_DEPTO-- Operador IN com caracteresSELECT NOME, ESTADO FROM CLIENTESWHERE ESTADO IN ('AM', 'PR', 'RJ', 'SP')-- Listar todos os estado que Não estão na listaSELECT NOME, ESTADO FROM CLIENTESWHERE ESTADO NOT IN ('AM', 'PR', 'RJ', 'SP')

Page 33: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Lidando com valores nulos

Causas do aparecimento de valores nulos- Criação de linhas sem configuração de valores- Criação de colunas com a palavra chave SPARSE no intuito

de conservar espaçoConsiderações- Nulo não é um valor zero- Retorna um valor desconhecido- Não é uma string vazia- Em cálculos, retorna um valor desconhecido

Page 34: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Seleciona os empregados com código de departamento-- igual a NuloSELECT * FROM EmpregadosWHERE COD_DEPTO IS NULL-- Seleciona os empregados com data de nascimento nula SELECT * FROM EmpregadosWHERE DATA_NASCIMENTO IS NULL-- Seleciona os empregados que possuem data de

nascimento SELECT * FROM EmpregadosWHERE DATA_NASCIMENTO IS NOT NULL

Page 35: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Substituindo valores nulos

Função ISNULLSELECT CODFUN, NOME, ISNULL(COD_DEPTO,-1) AS DEPTO,

ISNULL(SALARIO,-1) AS RENDAFROM Empregados--SELECT CODFUN, NOME,

ISNULL(DATA_NASCIMENTO,'1900.1.1') AS DATA_NASCFROM Empregados

Page 36: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

FUNÇÂO COALESCE

SELECT CODCLI, NOME,COALESCE(EST_COB,ESTADO,'NC') AS

EST_COBRANCAFROM CLIENTES ORDER BY 3

Page 37: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Laboratório 3 páginas 192

Page 38: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Manipulando campos do tipo DATETIME

SET DATEFORMAT – Utilizado para determinar a ordem Dia, Mês e ano de um valor datetime

SET DATEFORMAT (ordem)

mdy dmy ymd ydmMyd dym

SET DATEFORMAT YMD

Page 39: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

GETDATE() - retorna a data e hora atual do sistema

SELECT GETDATE() AS DATA_ATUAL;

-- Qual será a data que o SQL vai retornar ?SELECT GETDATE() + 45

-- A quantos dias cada funcionário foi admitido?SELECT CODFUN, NOME, CAST(GETDATE() - DATA_ADMISSAO AS INT) AS DIAS_NA_EMPRESAFROM EMPREGADOS

Page 40: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

-- Extraindo partes da data-- DiaSELECT * FROM EMPREGADOSWHERE DAY(DATA_ADMISSAO) = 1-- MêsSELECT * FROM EMPREGADOSWHERE MONTH(DATA_ADMISSAO) = 12-- AnoSELECT * FROM EMPREGADOSWHERE YEAR(DATA_ADMISSAO) = 2000-- Ano e MêsSELECT * FROM EMPREGADOSWHERE YEAR(DATA_ADMISSAO) = 2000 AND MONTH(DATA_ADMISSAO) = 1

Page 41: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

DATEPART – Retorna um inteiro da porção especificada no argumento

SELECT * FROM EMPREGADOSWHERE DATEPART(YEAR, DATA_ADMISSAO)

=2000 AND DATEPART(MONTH, DATA_ADMISSAO) = 12

* Argumentos na pág 107

Page 42: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

DATENAME() – Retorna uma string caractere que representa uma porção da data e hora, conforme argumento.

SELECT CODFUN, NOME, DATA_ADMISSAO, DATENAME(WEEKDAY,DATA_ADMISSAO) AS DIA_SEMANA, DATENAME(MONTH,DATA_ADMISSAO) AS MESFROM EMPREGADOSWHERE DATEPART(WEEKDAY, DATA_ADMISSAO) = 6

Page 43: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

DATEADD() – Adição com data e hora

-- Hoje mais 45 diasSELECT DATEADD( DAY, 45, GETDATE())-- Hoje mais 6 mesesSELECT DATEADD( MONTH, 6, GETDATE())-- Hoje mais 2 anosSELECT DATEADD( YEAR, 2, GETDATE())

Page 44: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

DATEDIFF – Diferença entre datas-- Quantos dias eu viviSELECT DATEDIFF( DAY, '1959.11.12', GETDATE())-- Quantos meses eu viviSELECT DATEDIFF( MONTH, '1959.11.12', GETDATE())-- Quantos anos eu vivi SELECT DATEDIFF( YEAR, '1959.11.12', GETDATE())-- A diferença em anos ou meses não retorna um valor exato-- Retorna 1, mas a diferença somente seria 1 em 20/2SELECT DATEDIFF( MONTH, '2009.1.20', '2009.2.15')-- Retorna 1, mas a diferença somente seria 1 em 20/6/2009SELECT DATEDIFF( YEAR, '2008.6.20', '2009.2.15')

Page 45: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

DATEFROMPARTS() – Retorna uma data a partir de valores inteiros

-- Retorna a data 25/12/2013SELECT DATEFROMPARTS (2013,12,25);

TIMEFROMPARTS() – Retorna um horário a partir de valores inteiro

-- Retorna o horário 10:25:15SELECT TIMEFROMPARTS (10,25,15,0,0);

Page 46: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

DATETIMEFROMPARTS() – Retorna data e hora-- Retorna a data 15/09/2013 14:00:15.0000SELECT DATETIMEFROMPARTS

(2013,9,15,14,0,15,0);

DATETIME2FROMPARTS() – Retorna um valor do tipo datetime2 a partir dos parâmetros ano, mês, dia, hora, minuto, segundo, fração de segundo e a precisão da fração de segundo

Page 47: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

SMALLDATETIMEFROMPARTS() – Retorna data e hora no tipo smalldatetime;

DATETIMEOFFSETFROMPARTS() – Retorna data e hora no tipo datetimeoffset.

Page 48: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

EOMonth() Esta função retorna o último dia do mês a partir dos parâmetros

Sintaxe:EOMONTH (data_início [, adicionar_mês]);

SELECT EOMONTH (GETDATE());

Page 49: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Alterando a configuração de idioma a partir do SSMS, página 176

Page 50: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname

Teste seus conhecimentos página 182 à 187

Laboratório 4, página 193