Amigo tengo la necesidad de saber cuando meses hay entre 2 periodos :
ejemplo:
04-2017 al 01-2018 hay 9 meses
esos quiero y para cualquier periodo que me sirva (mysql)
saludos
Amigo tengo la necesidad de saber cuando meses hay entre 2 periodos :
ejemplo:
04-2017 al 01-2018 hay 9 meses
esos quiero y para cualquier periodo que me sirva (mysql)
saludos
Saludos, usa en MySql, saludos... ![]()
TIMESTAMPDIFF
SELECT TIMESTAMPDIFF(MONTH,'2009-05-18','2010-07-29');
http://www.w3resource.com/mysql/date-an ... nction.php
PERIOD_DIFF()
SELECT PERIOD_DIFF(200905,200811);
algo do tipo:
d1 := ctod("01/01/2016")
d2 := ctod("01/01/2017")
alert((d2-d1)/30)
Tienes la function harbour EoM( dDate ) devuelve el último dÃa del mes dDate. Si lo que se busca el es primer dÃa del mes, Harbour ya tiene una función nativa: BoM( dDate )
cnavarro, lo que quiero es consrevar el dia en el mes anterior
saludos
Set Date Brit
Set Century On
Use Banco_de_Dados_1
Sele 0
Use Banco_de_Dados_2
Sele Banco_de_Dados_1
While !Eof()
Grava_dias( Codigo, Data_Inicial, Data_Final )
Skip
EndDo
Return Nil
Function Grava_Dias( xCodigo, dData_Ini, dData_Fim )
Local i, nQtd_Dias:=0, nQual_Mes:=Month( dData_Ini )
Local dFim_Check:=dData_Ini, lPri_mes:=.t.
Local cAlias:=Alias()
Sele Banco_De_Dados_2
While ( dFim_Check < dData_Fim )
If Month( dFim_Check ) # ( nQual_Mes )
Append Blank
nQtd_Dias:=If(lPri_mes, nQtd_Dias-1, nQtd_Dias)
Replace Codigo With xCodigo
Replace Qtd_Dias With nQtd_Dias
Replace Mes_De_Referencia With Right( DToC( dFim_Check-1 ), 7 )
lPri_mes:=.f.
nQtd_Dias:=0
nQual_Mes:=Month( dFim_Check )
EndIf
nQtd_Dias++
dFim_Check++
If ( dFim_Check = dData_Fim )
nQtd_Dias:=Day( dData_Fim )
Append Blank
Replace Codigo With xCodigo
Replace Qtd_Dias With nQtd_Dias
Replace Mes_De_Referencia With Right( DToC( dFim_Check ), 7 )
Exit
Endi
EndDo
Sele cAlias
Retu Niljbrita wrote:gracias Jose funciono bien... otra consulta mas
si al Generar Cobro
mes 8
Año 2017
12/04/2017 quedaria asi 12/08/2017
pero cuando el dia es mayor al de otro mes:
Generar Cobro
mes 9
Año 2017
31/08/2017 como quedaria aca 31/09/2017 esto quedaria malo ya que septiembre
tiene hasta 30 dias, tendria que ser 30-09-2017
Generar Cobro
mes 2
Año 2017
31/01/2017 como quedaria aca 31/02/2017 esto quedaria malo ya que septiembre
tiene hasta 30 dias, tendrÃa que ser 28-02-2017
en mysql como seria, ya que quiero conservar el dia, pero si el dia del mes anterior es mayor a ahi mi problema
saludos
Aca te dejo una forma mas exacta usando la fecha completa, de la forma que te lo coloco ya lo probe con diferentes fechas, has las pruebas de fuego...saludos...
SELECT PERIOD_DIFF( DATE_FORMAT('2017-04-15', '%Y%m'), DATE_FORMAT('2018-06-12', '%Y%m') )
muchs gracias resulto todo bien
saludos
jbrita wrote:muchs gracias resulto todo bien
saludos