Usuário com melhor resposta
Duvida sql server com data e variaveis

Pergunta
-
Eu tenho uma stored procedure que tem como parametro uma data por exemplo faturamento()e passo o a data de hoje qdo chamo ela faturamento('06/06/2013') porem dentro dela preciso ter uma variavel que é setada apartir desta data que passei porem no where preciso que seja passado a data assim:
Where DtFat >= '01/06/2013' and
DtFat < '06/06/2013'
Ai assim minha duvida é como faço a variavel interna DtInicial(setada como 01/01/2000) assumir o mes e ano da data que estou passando?
Obrigado
- Editado Shiguetaka quinta-feira, 6 de junho de 2013 14:21
Respostas
-
Shiguetaka, o que voce quer é armazenar em uma variavel o primeiro dia do mes ?
se for tente assim:
declare @data datetime set @data = (select DATEADD(day,- DATEPART(day,getdate()) +1,getdate())) select @data
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Shiguetaka quinta-feira, 6 de junho de 2013 15:26
-
Bom dia,
Shiguetaka, não sei se entendi corretamente a questão, mas experimente fazer um teste com o script abaixo:
declare @DtParam date; declare @DtInicial date; set @DtParam = '31/12/2013'; set @DtInicial = '01/01/2000'; set @DtInicial = DATEADD (MONTH, MONTH(@DtParam) - MONTH(@DtInicial), DATEADD(YEAR, YEAR(@DtParam) - YEAR(@DtInicial), @DtInicial)); select @DtInicial
Espero que seja útil.
Assinatura: http://www.imoveisemexposicao.com.br
- Editado gapimex quinta-feira, 6 de junho de 2013 15:08
- Marcado como Resposta Shiguetaka quinta-feira, 6 de junho de 2013 15:27
Todas as Respostas
-
Shiguetaka, o que voce quer é armazenar em uma variavel o primeiro dia do mes ?
se for tente assim:
declare @data datetime set @data = (select DATEADD(day,- DATEPART(day,getdate()) +1,getdate())) select @data
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Shiguetaka quinta-feira, 6 de junho de 2013 15:26
-
Shiguetaka, bom dia!
Tenho o costume de fazer assim em procs:
Where (DtFat >= @DtInicial and DtFat < @DtFinal)
Espero ter ajudado.
-
Bom dia,
Shiguetaka, não sei se entendi corretamente a questão, mas experimente fazer um teste com o script abaixo:
declare @DtParam date; declare @DtInicial date; set @DtParam = '31/12/2013'; set @DtInicial = '01/01/2000'; set @DtInicial = DATEADD (MONTH, MONTH(@DtParam) - MONTH(@DtInicial), DATEADD(YEAR, YEAR(@DtParam) - YEAR(@DtInicial), @DtInicial)); select @DtInicial
Espero que seja útil.
Assinatura: http://www.imoveisemexposicao.com.br
- Editado gapimex quinta-feira, 6 de junho de 2013 15:08
- Marcado como Resposta Shiguetaka quinta-feira, 6 de junho de 2013 15:27
-
Olá Shiguetaba, para você passar um valor a uma variável que você enviado a procedure, utiliza o SET, exemplo
Create procedure Buscadata (@DataDATE) as begin SELECT * FROM MinhaTabela WHERE Data = @Data end execute Buscadata '20130101' OU EXEC Buscadata '20130101'
SET @inicio = 20130101 SET @FIM = 20130330
No WHERE faça assim:
WHERE DataInicio >= @inicio AND dataFim <= @FIM
Espero que eu tenha te ajudado,
Abração
Wellinghton Pimentel Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.