Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

esousa

função mes/ano

Recommended Posts

Boa Noite, Pessoal!!

Alguém pode me ajudar com uma dúvida que estou tendo!??!?

Tenho uma tabela com o campo data. Desse campo gostaria de selecionar por data/mês.

Por exemplo: 2 anos e 6 meses.

Porque se eu fizer por DATEDIFF(MONTH) dados de 1 ano e 1 mes atrás atras vai me trazer 13.

 

Alguém sabe alguma função para trazer dessa forma?

 

Abs,

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Eduardo

 

Não entendi o que você que fazer, você quer calcular o período entre duas data, ou fazer uma pesquisa no banco de dado usando uma data.

 

Bom se você quiser fazer o calculo entre duas data para você ter perfeição no retorno deste intervalo monte uma função que pega primeiro os dias e depois os meses e ai sim os anos.

 

se você precizar um exemplo é sonte pedir.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Nilson,

Eu gostaria de calcular a data.

Por exemplo:

Eu tenho um cliente que se cadastrou em 2007.

Apartir dessa data quero calcular qual o período que ele é cliente. Porém a forma de apresentar deve ser 2 anos e 5 meses, por exemplo.

Pq se eu fizer um calculo normal de meses vai me trazer 36 meses.

 

Deu pra entender?!?!?

 

Abs,

Obrigado!!

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Eduardo

 

Segue uma função que montei para você que faz o que você quer.

 

Ve se vai servir.

 

Pois é somente copiar a função e colar em um modulo e passar os doi parameto de data e na função vai retornar o intervalo das data especificados em anos meses e dias.

 

observação esta função é em Visual Basic 9

 

Function CalculaData(ByVal DataI As Date, ByVal DataF As Date) As String

Dim Dias As Long, MesDia As Long, Meses As Long, Anos As Long

Dias = DateSerial(DataI.Year, DataI.Month + 1, 0).Day - DataI.Day

Dias += DataF.Day

DataI = DateAdd(DateInterval.Month, 1, CDate("01" & Mid(DataI, 3, 8)))

DataF = DateAdd(DateInterval.Month, -1, CDate("01" & Mid(DataF, 3, 8)))

Meses = DateDiff(DateInterval.Month, DataI, DataF)

If Dias >= 30 Then

MesDia += (Dias / 30)

Dias = (Dias - (MesDia * 30))

Meses += MesDia

End If

If Meses >= 12 Then

Anos = (Meses / 12)

Meses = (Meses - (Anos * 12))

End If

 

CalculaData = Anos & " Ano(s) " & Meses & " Mês(es) " & Dias & " Dia(s)"

End Function

 

Se tiver duvida é so postar

Compartilhar este post


Link para o post
Compartilhar em outros sites

É algo simples de se fazer via sql.... segue abaixo o exemplo:

 

DECLARE @DATACADASTRO DATETIME

SET @DATACADASTRO = '2008-05-10 00:00:00'

SELECT DATEDIFF(YEAR,@DATACADASTRO, GETDATE())-1 AS ANOS,  
	   DATEDIFF(MONTH,@DATACADASTRO,GETDATE()) - ((DATEDIFF(YEAR,@DATACADASTRO, GETDATE())-1)*12) AS MESES,
	   'Cadastrado a ' + CONVERT(VARCHAR,DATEDIFF(YEAR,@DATACADASTRO, GETDATE())-1) + ' anos e ' +
	   CONVERT(VARCHAR,DATEDIFF(MONTH,@DATACADASTRO,GETDATE()) - ((DATEDIFF(YEAR,@DATACADASTRO, GETDATE())-1)*12)) + ' meses' As Periodo

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.