SQL - horas habiles

   
Vista:

horas habiles

Publicado por Alejandro (5 intervenciones) el 31/01/2008 01:04:38
hola que tal...

Hice una tabla de dias feriados o sea para sacar los días inhabiles (domingos) de cada mes puse el ID, Descripcion (el domingo) de fecha, a fecha (donde pongo) la fechas que son inhabiles y este SELECT para sacar solo los dias habiles. pero no lo saca me pueden ayudar.

SELECT DATEDIFF(d,'01/01/2008', GETDATE()) + 1 - ISNULL(SUM(DATEDIFF(d, de, a) + 1), 0) from [dias feriados] where de BETWEEN '01/01/2008' and GETDATE() OR A BETWEEN '01/01/2008' and GETDATE() OR de < '01/01/2008' and a > GETDATE()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:horas habiles

Publicado por Isaias (5073 intervenciones) el 31/01/2008 01:13:05
Alejandro

Cada dia de la semana, ocupa una posicion del 1 al 7 dentro de SQL Server, por ejemplo:

Si ejecuto esto hoy JUEVES:

SELECT DATEPART(dw,getdate())

Resultado = 4

¿Ya lo intentaste por ahi?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:horas habiles

Publicado por Alejandro (5 intervenciones) el 31/01/2008 23:10:14
estuve checando con el de DATEPART, fijate que me puede dar una idea de que como me comentas la posicion de la semana 1 a 7.

pero todavia no c como aplicarla que me cuente los dias de cada mes pero que me decremente los dias en la posicion no. 7
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:horas habiles

Publicado por Isaias (5073 intervenciones) el 01/02/2008 02:32:45
Es algo de logica, me permiti hacer un script que cuenta los dias del mes, pero RESTA los domingos del mes, espero lo puedas adecuar a tus necesidades.

-- Para saber el ultimo dia del mes, esto te daria el TOTOL de dias del mes:

create function dbo.ElUltimoDiaDelMes(@Fecha datetime)
returns int
as
begin
return day(dateadd(mm , 1 , @Fecha - day(@Fecha) +1) -1)
end
go

-- entonces coloco el resultado en una variable
DECLARE @MyVar int, @Domingos int, @MyFecha SMALLDATETIME
SET @MyVar = 31
SET @Domingos = 0
SET @MyFecha = cast(year(getdate()) as char(4))+cast(month(getdate()) as char(2))+'01'
WHILE @MyVar > 0
BEGIN
IF DATEPART(DW,@MyFecha) = 1
SET @Domingos = @Domingos +1
SET @MyFecha = DATEADD(DAY,1, @MyFecha)
SET @MyVar = @MyVar-1
CONTINUE
END
SELECT 'DOMINGOS', @Domingos
-- RESTAS LOS DOMINGOS A TU ULTIMO DIA DEL MES
SELECT dbo.ElUltimoDiaDelMes(GETDATE()) - @Domingos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:horas habiles

Publicado por Alejandro (5 intervenciones) el 06/02/2008 23:23:12
ok. la voy a checar haber si me puede servir en lo que estoy realizando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar