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

Query para horas habiles

Estas en el tema de Query para horas habiles en el foro de SQL Server en Foros del Web. Buenos Dias Quiera preguntarles como hago una funcion que contenga 4 parametros de entrada un id de la compañia, una fecha inicial (2012-12-01 00:00:00), una ...
  #1 (permalink)  
Antiguo 18/10/2012, 06:45
 
Fecha de Ingreso: octubre-2012
Ubicación: Bogota
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Query para horas habiles

Buenos Dias
Quiera preguntarles como hago una funcion que contenga 4 parametros de entrada un id de la compañia, una fecha inicial (2012-12-01 00:00:00), una fecha final (2012-12-31 12:30:00) y el formato en que el usuario quiere que le devuelva el resultado (DD: HH: MM)... la funcion de acuerdo a la fecha debe calcular los dias habiles (sin sabados, ni domingos, ni holidys o festivos) y las horas habiles (de 8:00 am a 12:00 m y de 2:00 pm a 6:00 pm).
tengo 1 tabla de holidays con los campos idCompañia, Holiday (fecha: 2012-12-25), Pais.... tengo otra tabla con el horario laboral con los siguientes campos horaIngreso (8:00 am) una horasalida (18:00 pm) un dia (Lunes, Martes, Miercoles, Jueves, viernes) un idCompañia y un pais....

intente hacer la funcion por separado... calculando primero los dias sin holidays... luego sin sabados y domingos... pero no he podido con la hora....



Ayuda por favor.... y de antemano muchas gracias
  #2 (permalink)  
Antiguo 18/10/2012, 08:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Query para horas habiles

ayudame a ayudarte.....cual es el codigo que ya tienes???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 18/10/2012, 15:06
 
Fecha de Ingreso: octubre-2012
Ubicación: Bogota
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Query para horas habiles

ok. sip... que descuido....
mira tengo este codigo para los holidays

declare @company int = 1
declare @fch_ini date = '2012-12-01'
declare @fch_fna date = '2012-12-07'

declare @habiles int
declare @laborales int
declare @holidays int

set @holidays =( select count(*)
from GEN_Holidays
where intCompanyID = @company
and charDescription <>'Sabado'
and charDescription <>'Domingo'
and dtDate between @fch_ini and @fch_fna)
set @habiles = DATEDIFF (DD,@fch_ini,@fch_fna)+1}
set
set @laborales = @habiles - @holidays

---- tengo esta otra consulta que me genera los habiles sin sabados ni domingos----
----cree una tabla temporal para guardar esto----

declare @fch_ini datetime = '2012-10-01'
declare @fch_fna datetime = '2012-10-31'
declare @company int =1

Insert #Dias (nombre, Total) select charDayName as Day, count(*)as Total
FROM CalendarCountry WHERE intCompanyID = @company
AND date BETWEEN @fch_ini AND @fch_fna
and charDayName <> 'Sábado'
and charDayName <> 'Domingo'
group by charDayName

----------------------------tengo este otro query pra que me calcule la diferencia de horas

eclare @FISAP DATETIME = '2012-12-01 08:00:00'
declare @FFSAP DATETIME = '2012-12-01 10:30:00'
declare @ok varchar

set @ok = CAST(CAST((DATEDIFF(MINUTE,0, @FFSAP) -
DATEDIFF(MINUTE,0, @FISAP))/60.00 AS DECIMAL(9,6)) AS VARCHAR)
print @ok

------

Y pues como pueden ver... estoy muy envolatada....

Muchas Gracias...
  #4 (permalink)  
Antiguo 18/10/2012, 15:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Query para horas habiles

diferencia de horas:

Código SQL:
Ver original
  1. DECLARE @FISAP DATETIME = '2012-12-01 08:00:00'
  2. DECLARE @FFSAP DATETIME = '2012-12-01 10:30:00'
  3. DECLARE @ok VARCHAR(20)
  4. SELECT @ok=CONVERT(VARCHAR(20),CAST(datediff(mi,@FISAP,@FFSAP) / 60 AS DECIMAL(9,3)) + CAST(CAST(datediff(mi,@FISAP,@FFSAP) % 60 AS DECIMAL(9,3))/60 AS DECIMAL(9,3)))
  5.  
  6. print @ok

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 19/10/2012, 07:56
 
Fecha de Ingreso: octubre-2012
Ubicación: Bogota
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Query para horas habiles

ok. muchas gracias.....

Etiquetas: habiles, horas, query, tabla, campos
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 07:27.