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

Intervalo de fechas

Estas en el tema de Intervalo de fechas en el foro de Bases de Datos General en Foros del Web. hola amigos resulta que tengo que hacer una consulta en una tabla tengo 2 campos de fechas en una tabla . tengo un un calendario ...
  #1 (permalink)  
Antiguo 15/04/2005, 12:19
Avatar de jeanette  
Fecha de Ingreso: mayo-2002
Ubicación: Quilpue
Mensajes: 20
Antigüedad: 22 años
Puntos: 0
Intervalo de fechas

hola amigos resulta que tengo que hacer una consulta en una tabla
tengo 2 campos de fechas en una tabla . tengo un un calendario y cuando selleciono 2 fechas quiero saber si estan libres como lo hago en la instruccion para que me de este dato
eso es todo
__________________
gallardo
  #2 (permalink)  
Antiguo 15/04/2005, 12:40
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Prueba con algo como (sintaxis de TSQL):
Código:
IF EXISTS(
	SELECT campo
	FROM tabla
	WHERE fecha BETWEEN @fecha_inicio AND @fecha_fin
)
BEGIN
	PRINT 'colision'
END
ELSE
BEGIN
	PRINT 'libre'
END
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 18/04/2005, 15:10
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Via MP me dices que tienes 2 campos, no 1. Este es el código que uso en uno de mis triggers:
Código:
CREATE TRIGGER TR_tblDiasNoTrabajadosXCateg_I ON [dbo].[tblDiasNoTrabajadosXCateg] 
INSTEAD OF INSERT
AS

IF EXISTS(			--Si entra en conflicto con otro evento
	SELECT * FROM Inserted I
		INNER JOIN dbo.tblDiasNoTrabajadosXCateg DNT
			ON DNT.id_categ = I.id_categ
			AND DNT.id_centro_costo = I.id_centro_costo
	WHERE ( I.fecha_inicio BETWEEN DNT.fecha_inicio AND DNT.fecha_fin
		OR I.fecha_fin BETWEEN DNT.fecha_inicio AND DNT.fecha_fin )
		OR ( DNT.fecha_inicio BETWEEN I.fecha_inicio AND I.fecha_fin
		OR DNT.fecha_fin BETWEEN I.fecha_inicio AND I.fecha_fin )
)
BEGIN
		RAISERROR('WARNING: Las fechas entran en conflicto con otro evento previo.', 16,1)
		ROLLBACK TRANSACTION
END
ELSE
BEGIN
	IF EXISTS(SELECT * FROM Inserted WHERE fecha_inicio > fecha_fin)
	BEGIN
		RAISERROR('WARNING: La Fecha de Inicio no puede ser mayor a la Fecha de Fin.', 16,1)
		ROLLBACK TRANSACTION
	END
	ELSE
	BEGIN
		INSERT INTO dbo.tblDiasNoTrabajadosXCateg
		SELECT id_categ,
			id_centro_costo,
			Convert(NVARCHAR, Year(fecha_inicio)) + '-' + Convert(NVARCHAR, Month(fecha_inicio)) + '-' + Convert(NVARCHAR, Day(fecha_inicio)),
			Convert(NVARCHAR, Year(fecha_fin)) + '-' + Convert(NVARCHAR, Month(fecha_fin)) + '-' + Convert(NVARCHAR, Day(fecha_fin)) + ' ' + '23:59',
			motivo
		FROM Inserted
	END
END
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 09:15.