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

Mostrar tiempo de Servicio de un trabajdor

Estas en el tema de Mostrar tiempo de Servicio de un trabajdor en el foro de SQL Server en Foros del Web. como puedo mostrar el tiempo de servicio de un trabajador en Años, Meses, Dias. ejemplo año Inicio 15-05-1972 año Fin 12-30-2008 o fecha actual ; ...
  #1 (permalink)  
Antiguo 11/05/2009, 11:45
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Mostrar tiempo de Servicio de un trabajdor

como puedo mostrar el tiempo de servicio de un trabajador en Años, Meses, Dias. ejemplo año Inicio 15-05-1972 año Fin 12-30-2008 o fecha actual ; 36 años 7 meses y 16 días, y como llamarlo desde el visual studio 2005
Ojo:Los meses solo se cuentan 30 dias de enero a diciembre sin ecepción
Por favor Ayuda soy Nuevo en esto.
Gracias de ante mano
  #2 (permalink)  
Antiguo 11/05/2009, 14:09
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Mostrar tiempo de Servicio de un trabajdor

http://www.forosdelweb.com/f87/ayuda...2000-a-616425/
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 12/05/2009, 07:24
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: Mostrar tiempo de Servicio de un trabajdor

Gracias por el Dato me resulto de mucha ayuda es justo lo que necesitaba lo prove de muchas maneras y no encontre ningun error en la respuesta pero hay un problemita como ejecuto con un SELECT desde mi tabla.... Select FechaIngreso From tEmpleado.
Bueno un trabajador puede haber laborado solo 3, 5...8 o 11 meses o tambien en 05/02/1999 a 30/12/2002 y 12/01/2005 a la fecha como controlo estas fecha desde una consulta en SQL Server 2000.
ojo: 31/12/2002 a 11/01/2005 años no trabajados.

esta rutina como convertir en Sonsulta---- GRACIAS POR LA AYUDA
--- Años, Meses, Dias
declare @años as integer
declare @meses as integer
declare @dias as integer
declare @fecha as datetime
declare @hoy as datetime

set @fecha = '19600407'
set @hoy = getdate()
set @años = datediff("yy", @fecha, @hoy)
if dateadd("yy", @años, @fecha) > @hoy set @años = @años - 1
set @fecha = dateadd("yy", @años, @fecha)
set @meses = datediff("mm", @fecha, @hoy)
if dateadd("mm", @meses, @fecha) > @hoy set @meses = @meses - 1
set @fecha = dateadd("mm", @meses, @fecha)
set @dias = datediff("dd", @fecha, @hoy)
set @fecha = dateadd("dd", @dias, @fecha)
print 'Tu edad es de ' + ltrim(str(@años)) + ' años ' + ltrim(str(@meses)) + ' meses y ' + ltrim(str(@dias)) + ' días.'

Última edición por Alwi; 12/05/2009 a las 07:30
  #4 (permalink)  
Antiguo 12/05/2009, 09:58
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Mostrar tiempo de Servicio de un trabajdor

De qué forma tienes registrado las fechas que laboró el trabajador?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 12/05/2009, 12:06
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Ayuda: Mostrar tiempo de Servicio de un trabajdor

Esta de esta Forma:

---Trabajador Eventual este solo puede trabajar mese o años. tambien puede volver a trabajar despues de un cierto tiempo, solo se computan los dias, meses y años loborados...

CREATE TABLE tEmpleadoEventual (
CodigoEmpleadoEventual char(8) NOT NULL,
FechaIngreso datetime NULL,
FechaFin datetime NULL,
)
go

ALTER TABLE tEmpleadoEventual
ADD PRIMARY KEY (CodigoEmpleadoEventual)
go

Nombre FechaInicio FechaFin

Pedro 02/12/1986 30/03/1987
pedro 01/04/1987 30/05/1987
-------------------------------------------
pedro 10/08/1988 30/12/1988

Total: Tiempo de Servicio Trabajador Eventual
Año Mes Dia
0 10 18

--Un trabajador Fijo tambien fue alguna ves Trabajador eventual. Un claro ejemplo los profesores primero son Contratados y despues Nombrados pero el tiempo de servicio se computa desde el inicio de trabajo (contratado).

--Trabajador Fijo hasta el dia q cesa o 70 Años
CREATE TABLE tEmpleado (
CodigoEmpleado char(8) NOT NULL,
FechaIngreso datetime NULL,
)
go

ALTER TABLE tNombrado
ADD PRIMARY KEY (CodigoEmpleado)
go

--En este caso pedro ya es un trabajador Fijo

Nombre FechaInicio

pedro 01/01/1989
----------------------------------------
Total: Tiempo de Servicio Trabajador Fijo
Año Mes Dia
20 4 11

Sumados el tiempo como trabajdor eventual y Fijo es:
Año Mes Dia
21 2 29

ojo:Los meses solo se computan en 30 dias sin ecepcion
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 10:14.