SQL
Na verdade a minha difculade naum eh vb mas sim Sql...
eu tenho um campo tipo smalldatetime chamado data, entaum gostaria de selecionar todas as datas cujo ano eh 2005...como posso fazer este select..
ex: 21/02/2005....gostaria de selecionar todos os registro com ano de 2005
eu tenho um campo tipo smalldatetime chamado data, entaum gostaria de selecionar todas as datas cujo ano eh 2005...como posso fazer este select..
ex: 21/02/2005....gostaria de selecionar todos os registro com ano de 2005
select * from tabela where year(campo) = 2005
mas veja bem, tenha em mente que vc usar funções na clausula where, o sql server ignora qualquer indice que possa ter nesta tabela....
mas veja bem, tenha em mente que vc usar funções na clausula where, o sql server ignora qualquer indice que possa ter nesta tabela....
/*
****** O COMANDO GETDATE *******
O GATDATE RETORNA A HORA DO SERVIDOR
EX: SELECT GETDATE()
A VANTAGEM DO USO DE CONVERT é A DE MANIPULAR A APRESENTAÇÃO DE DATAS
*/
SELECT GETDATE()
SELECT FIRSTNAME,
CAST (BIRTHDATE AS VARCHAR (20)) AS 'CAST',
CONVERT (VARCHAR(20),BIRTHDATE,103) AS 'CONVERT',
CONVERT (VARCHAR(20),BIRTHDATE,03) AS 'CONVERT'
FROM EMPLOYEES
-----------------------------------------------------------------------
-----------------------------------------------------------------------
/*
MANIPULAÇÃO DE DATAS
DATEPART -- RETORNA A PARTE SELECIONADA DE UMA DATA JUNTAMENTE COM O
GETDATE
*/
SELECT DATEPART (DD,GETDATE()) AS 'DIA',
DATEPART (MM,GETDATE()) AS 'MES',
DATEPART (WK,GETDATE()) AS 'SEMANA',
DATEPART (YY,GETDATE()) AS 'ANO',
DATEPART (DY,GETDATE()) AS 'DIA DO ANO',
DATEPART (HH,GETDATE()) AS 'HORA',
DATEPART (MI,GETDATE()) AS 'MINUTO',
DATEPART (SS,GETDATE()) AS 'SEGUNDO'
-- RETORNA PARTE DE UMA DATA TAMBEM
SELECT DAY (GETDATE()) 'DIA',
MONTH (GETDATE()) 'MES',
YEAR (GETDATE()) 'ANO'
-----------------------------------------------------------------------
-- DATEDIFF
/* RETORNA A DIFERENÇA ENTRE DUAS DATA, DE ACORDO COM A PARTE SOLICITADA DA DATA...
*/
SELECT DATEDIFF (DD, '12/11/1981', GETDATE ()) AS 'NUMERO DE DIAS',
DATEDIFF (MM, '12/11/1981', GETDATE ()) AS 'NUMERO DE MESES',
DATEDIFF (YY, '12/11/1981', GETDATE ()) AS 'NUMERO DE ANOS',
DATEDIFF (HH, '12/11/1981', GETDATE ()) AS 'NUMERO DE ANOS'
-- RETORNA QUANTOS DIAS TEM DO DIA 12/11/1981 ATé O DIA DE HOJE
-- CONFIGURA A LEITURA DA DATAS DO EDITOR PARA DIA/MES/ANO
SET DATEFORMAT DMY --((D-DIA/M-MES/Y-ANO))
-- NUMA DIVISÃO USANDO A PORCENTAGEM (%) PODEMOS OBTER O RESTO DE UMA
-- DIVISÃO
SELECT CAST (270 AS DECIMAL (5,2))/12 'IDADE',
270 % 12 'FALTA MESES'
-----------------------------------------------------------------------
-- DATEADD
/* GERA UMA NOVA DATA, A PARTIR DO CALCULO DE UMA DATA MAIS UM VALOR (N)
SOMADO A UMA PARTE ESPECÃ ÂFICA DA DATA.
*/
SELECT DATEADD (YY, -5, GETDATE()),
DATEADD (YY, 10, GETDATE()),
DATEADD (WK, 10, GETDATE())
-----------------------------------------------------------------------
-----------------------------------------------------------------------
-- DATENAME
/* RETORNA UMA PARTE DA DATA ISCRITA POR EXTENSO
*/
SELECT DATENAME (DW,GETDATE())'DIA DA SEMANA',
DATENAME (MM,GETDATE())'MES'
SET LANGUAGE BRAZILIAN -- SELECIONA O IDIOMA
SELECT * FROM MASTER..SYSLANGUAGES -- MOSTRA TODAS AS LINGUAS CONHECIDAS
-- PELO SQL SERVER
Espero ter ajudado um pouco!
Um abraço!
****** O COMANDO GETDATE *******
O GATDATE RETORNA A HORA DO SERVIDOR
EX: SELECT GETDATE()
A VANTAGEM DO USO DE CONVERT é A DE MANIPULAR A APRESENTAÇÃO DE DATAS
*/
SELECT GETDATE()
SELECT FIRSTNAME,
CAST (BIRTHDATE AS VARCHAR (20)) AS 'CAST',
CONVERT (VARCHAR(20),BIRTHDATE,103) AS 'CONVERT',
CONVERT (VARCHAR(20),BIRTHDATE,03) AS 'CONVERT'
FROM EMPLOYEES
-----------------------------------------------------------------------
-----------------------------------------------------------------------
/*
MANIPULAÇÃO DE DATAS
DATEPART -- RETORNA A PARTE SELECIONADA DE UMA DATA JUNTAMENTE COM O
GETDATE
*/
SELECT DATEPART (DD,GETDATE()) AS 'DIA',
DATEPART (MM,GETDATE()) AS 'MES',
DATEPART (WK,GETDATE()) AS 'SEMANA',
DATEPART (YY,GETDATE()) AS 'ANO',
DATEPART (DY,GETDATE()) AS 'DIA DO ANO',
DATEPART (HH,GETDATE()) AS 'HORA',
DATEPART (MI,GETDATE()) AS 'MINUTO',
DATEPART (SS,GETDATE()) AS 'SEGUNDO'
-- RETORNA PARTE DE UMA DATA TAMBEM
SELECT DAY (GETDATE()) 'DIA',
MONTH (GETDATE()) 'MES',
YEAR (GETDATE()) 'ANO'
-----------------------------------------------------------------------
-- DATEDIFF
/* RETORNA A DIFERENÇA ENTRE DUAS DATA, DE ACORDO COM A PARTE SOLICITADA DA DATA...
*/
SELECT DATEDIFF (DD, '12/11/1981', GETDATE ()) AS 'NUMERO DE DIAS',
DATEDIFF (MM, '12/11/1981', GETDATE ()) AS 'NUMERO DE MESES',
DATEDIFF (YY, '12/11/1981', GETDATE ()) AS 'NUMERO DE ANOS',
DATEDIFF (HH, '12/11/1981', GETDATE ()) AS 'NUMERO DE ANOS'
-- RETORNA QUANTOS DIAS TEM DO DIA 12/11/1981 ATé O DIA DE HOJE
-- CONFIGURA A LEITURA DA DATAS DO EDITOR PARA DIA/MES/ANO
SET DATEFORMAT DMY --((D-DIA/M-MES/Y-ANO))
-- NUMA DIVISÃO USANDO A PORCENTAGEM (%) PODEMOS OBTER O RESTO DE UMA
-- DIVISÃO
SELECT CAST (270 AS DECIMAL (5,2))/12 'IDADE',
270 % 12 'FALTA MESES'
-----------------------------------------------------------------------
-- DATEADD
/* GERA UMA NOVA DATA, A PARTIR DO CALCULO DE UMA DATA MAIS UM VALOR (N)
SOMADO A UMA PARTE ESPECÃ ÂFICA DA DATA.
*/
SELECT DATEADD (YY, -5, GETDATE()),
DATEADD (YY, 10, GETDATE()),
DATEADD (WK, 10, GETDATE())
-----------------------------------------------------------------------
-----------------------------------------------------------------------
-- DATENAME
/* RETORNA UMA PARTE DA DATA ISCRITA POR EXTENSO
*/
SELECT DATENAME (DW,GETDATE())'DIA DA SEMANA',
DATENAME (MM,GETDATE())'MES'
SET LANGUAGE BRAZILIAN -- SELECIONA O IDIOMA
SELECT * FROM MASTER..SYSLANGUAGES -- MOSTRA TODAS AS LINGUAS CONHECIDAS
-- PELO SQL SERVER
Espero ter ajudado um pouco!
Um abraço!
Tópico encerrado , respostas não são mais permitidas