Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

transformar periodos contables a fechas

Estas en el tema de transformar periodos contables a fechas en el foro de SQL Server en Foros del Web. Hola a todos los foreros, bueno aqui vengo con esta pregunta, como puedo transformar los periodos contables tanto los inicial como los finales en fechas. ...
  #1 (permalink)  
Antiguo 02/12/2010, 15:40
 
Fecha de Ingreso: abril-2010
Mensajes: 38
Antigüedad: 14 años
Puntos: 0
transformar periodos contables a fechas

Hola a todos los foreros, bueno aqui vengo con esta pregunta, como puedo transformar los periodos contables tanto los inicial como los finales en fechas.

me explico en este ejemplo


periodo_inicial periodo_final
201002 201004


resultado de la transformacion de periodos a las fechas

fecha_inicial = 01-02-2010
fecha_final = 30-04-2010

esta es mi consulta que tengo

DECLARE @FECHAINICIAL DATETIME, @FECHAFINAL DATETIME, @PERIODO_INICIAL INT, @PERIODO_FINAL INT


set @PERIODO_INICIAL ='201002'
set @PERIODO_FINAL = '201004'

SET @FECHAINICIAL = ?
SET @FECHAFINAL = ?


select @FECHAINICIAL , @FECHAFINAL


obs= la @fechafinal es el ultimo dia del periodofinal que se consulta.


saludos

:)
  #2 (permalink)  
Antiguo 02/12/2010, 22:42
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: transformar periodos contables a fechas

Tal vez porque no soy Contador, no entendi el ejemplo, lo que si me queda claro es que las fechas las debes manejar yyyy-mm-dd
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 03/12/2010, 02:05
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 14 años, 6 meses
Puntos: 7
Información Respuesta: transformar periodos contables a fechas

haber, prueba con lo siguiente:

Código SQL:
Ver original
  1. DECLARE @FECHAINICIAL DATETIME
  2. DECLARE @FECHAFINAL DATETIME
  3. DECLARE @PERIODO_INICIAL INT
  4. DECLARE @PERIODO_FINAL INT
  5. DECLARE @PIc VARCHAR(10)
  6. DECLARE @PFc VARCHAR(10)
  7.  
  8.  
  9. SET @PERIODO_INICIAL ='201002'
  10. SET @PERIODO_FINAL = '201004'
  11. --convierto de entero a caracter
  12. SET @PIc = CONVERT(VARCHAR, @PERIODO_INICIAL)
  13. SET @PFc = CONVERT(VARCHAR, @PERIODO_FINAL)
  14. --conpongo la cadena
  15. SET @PIc = SUBSTRING( @PIc ,1,4)+'-'+SUBSTRING( @PIc ,5,6)+'-01'
  16. SET @PFc = SUBSTRING( @PFc ,1,4)+'-'+SUBSTRING( @PFc ,5,6)+'-01'
  17. --convierto a datetime la cadena
  18. SET @FECHAINICIAL = CONVERT(datetime,@PIc,103)
  19. --a la fecha final, le sumo un mes y le resto un dia
  20. SET @FECHAFINAL = dateadd( MONTH,1,@PFc) -1
  21. --Vemos los resultados
  22. SELECT
  23.     @FECHAINICIAL AS [Fecha Arreglada F_Inicial]
  24.     ,@FECHAFINAL AS [Fecha Arreglada F_Final]
  25.     ,CONVERT(VARCHAR(10),@FECHAINICIAL,105) AS [Tu Formato F_Inicial]
  26.     ,CONVERT(VARCHAR(10),@FECHAFINAL,105) AS [Tu Formato F_Final]
es un poco rudimentario, pero creo que seria funcional
  #4 (permalink)  
Antiguo 03/12/2010, 07:01
 
Fecha de Ingreso: abril-2010
Mensajes: 38
Antigüedad: 14 años
Puntos: 0
Respuesta: transformar periodos contables a fechas

Hola y muchas gracias por el interes en este problemita que tengo, Isla la idea
en si, es transformar un determinado periodo contable ya sea un periodo inicial o periodo final en fechas (dd-mm-yyyy). Y siempre la fecha_incial (variable segun el periodo_inicial) corresponde al primer dia del mes del periodo en cueston me explico con este pequeño ejemplo:

set @periodo_inicial = '201008' ---- este es el mes de agosto del 2010

y el resultado de este periodo seria 2010-08-01 (en la variable fecha_inicial)
claro que como esta en yyyy-mm-dd en el select la transformo de esta forma.

select convert(char, @fecha_inicial,103) as fecha_inicial

y para el periodo_final siempre sera la ultima fecha de cada mes. Con estos ejemplos me explico mejor.

@periodo_final = '201009' ---- septiembre del 2010

este periodo a fecha_final siempre buscara el ultimo dia del periodo_final
en este caso el rwesultado seria @fecha_final = 30-09-2010 (resultado)

otro ejemplo de otro mes con 31 dias seria

@periodo_final = '201012' ------ es resultado de esto seria 31-12-2010


hola joch_pa, al parecer el camino va el nos dices, pero el resultado final en la fechas esta erroneas, me explico.

en la consulta el periodo_inicial es '201002' (febrero del 2010) lo cual en la fecha_inicial seria 01-02-2010 y periodo_final '201004' (abril del 2010) este en la fecha_final seria 30-04-2010, y los resultado de tu consulta creada, me da estos resultado respectivamente.

02-01-2010 y 03-02-2010

bueno, creo que es un gran comienzo, de todas formas al parecer el camino va por ahi, a pesar que como dices tu es medio rustico, pero en realidad lo que busco es llegar a los resultados finales, despues siempre se van mejorando las consultas. :)


muchas gracias... = estare atentos a sus comentarios.
  #5 (permalink)  
Antiguo 03/12/2010, 15:36
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: transformar periodos contables a fechas

ok ya vi donde falto jijiji
checaolo de nuevo:

Código SQL:
Ver original
  1. DECLARE @FECHAINICIAL DATETIME
  2. DECLARE @FECHAFINAL DATETIME
  3. DECLARE @PERIODO_INICIAL INT
  4. DECLARE @PERIODO_FINAL INT
  5. DECLARE @PIc VARCHAR(10)
  6. DECLARE @PFc VARCHAR(10)
  7.  
  8.  
  9. SET @PERIODO_INICIAL ='201008'
  10. SET @PERIODO_FINAL = '201009'
  11. --convierto de entero a caracter
  12. SET @PIc = CONVERT(VARCHAR, @PERIODO_INICIAL)
  13. SET @PFc = CONVERT(VARCHAR, @PERIODO_FINAL)
  14. --conpongo la cadena
  15. SET @PIc = SUBSTRING( @PIc ,1,4)+'-'+SUBSTRING( @PIc ,5,6)+'-01'
  16. SET @PFc = SUBSTRING( @PFc ,1,4)+'-'+SUBSTRING( @PFc ,5,6)+'-01'
  17. --convierto a datetime la cadena
  18. SET @FECHAINICIAL = @PIc
  19. --a la fecha final, le sumo un mes y le resto un dia
  20. SET @FECHAFINAL = dateadd( MONTH,1,@PFc) -1
  21. --Vemos los resultados
  22. SELECT
  23.     --@FECHAINICIAL AS [Fecha Arreglada F_Inicial]
  24.     --,@FECHAFINAL AS [Fecha Arreglada F_Final],
  25.     CONVERT(VARCHAR(10),@FECHAINICIAL,105) AS [Tu Formato F_Inicial]
  26.     ,CONVERT(VARCHAR(10),@FECHAFINAL,105) AS [Tu Formato F_Final]

sobraba algo en la linea 18, este resultado me da con las nuevas fechas:

Código SQL:
Ver original
  1. Tu Formato F_Inicial Tu Formato F_Final
  2. -------------------- ------------------
  3. 01-08-2010           30-09-2010
  4.  
  5. (1 ROW(s) affected)
  #6 (permalink)  
Antiguo 03/12/2010, 17:05
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: transformar periodos contables a fechas

Me quedo clara la explicacion, gracias
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 06/12/2010, 06:36
 
Fecha de Ingreso: abril-2010
Mensajes: 38
Antigüedad: 14 años
Puntos: 0
Respuesta: transformar periodos contables a fechas

hola Joch_pa, la verdad que es eso lo que quiero y simplemente te haz pasado joch_pa, y bueno me haz mostrado la formula y mas encima el resultado que entrega, pero una vez que copio la consulta que haz creado, me entrega los siguientes valores.

Tu Formato F_Inicial Tu Formato F_Final
08-01-2010 08-02-2010

al parecer puede ser por mi formato de configuracion regional, actuamente la tengo en español - chile.


Pero bueno, seguire intentando. Y muchas gracias Joch_pa

Etiquetas: fechas, transformar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:11.