Sv Community El Salvador
Soporte y Tecnología => Programación => Base de Datos => Mensaje iniciado por: Darkness en abril 14, 2009, 11:45:23 am
-
Bueno pues aca vengo solicitando ayuda....
gracias de antemano
Tengo una tabla en MSSQL 2005 la cual contiene datos como estos
documento fecha monto
_____________________________________________
fac0001 14/04/2009 15:58:45 $$$$
fac0002 13/04/2009 13:58:45 $$$$
fac0003 14/04/2009 15:58:45 $$$$
fac0004 15/04/2009 16:58:45 $$$$
fac0005 15/04/2009 14:58:45 $$$$
fac0006 15/04/2009 09:58:45 $$$$
fac0007 16/04/2009 07:58:45 $$$$
fac0008 16/04/2009 06:58:45 $$$$
el punto es que quiero obtener documentos hechos de las 13:00:00 en adelante, cuando es de un solo dia lo hago asi:
FECHA >= '''14/04/2009 13:00:00'''
and FECHA <= '''14/04/2009 17:00:00''
la cuestion es:
cuando la consulta es de un solo dia no hay problema, pero por ejemplo si necesito sacar todo el mes cuales fueron los documentos generados despues de las 13:00:00, ya no me es funcional este metodo...
como puedo desglosar para obtener la hora de este campo o como hago el query que me seleccione solo los registros que necesito.
-
SELECT * FROM tabla WHERE HOUR(fecha) >=13 AND MONTH(fecha) = 1
Eso digamos seria para sacar todos los que esten despues de la 1:00p.m en Enero.
PD: Eso lo probé en MySQL, no se si funcionara bien en MSSQL :S
-
SELECT * FROM tabla WHERE HOUR(fecha) >=13 AND MONTH(fecha) = 1
Eso digamos seria para sacar todos los que esten despues de la 1:00p.m en Enero.
PD: Eso lo probé en MySQL, no se si funcionara bien en MSSQL :S
Ok. testing...
-
podrias hacerlo asi:
select *
from tabla
where fecha between '01/03/2009' and '31/03/2009'
and to_char(fecha,'hh24') >= 13
probado en oracle, te recomiendo usar este codigo si quieres ingresar fechas que no caen exactamente en principio y fin de un mes, puede ser entre dia 7 y dia 10 de un mismo mes, o entre dias de meses distintos
ahora por si queres para que sea entre el primer y ultimo dia de un mes, pasandole solamente el mes como parametro seria asi:
select *
from tabla
where fecha between trunc(to_date('02/2009','MM/RRRR')) and last_day(to_date('02/2009','MM/RRRR'))
and to_char(fecha,'hh24') >= 13
otra vez, probado en oracle, desconozco si la funcion last_day esta en sqlserver, o si la funcion trunc funciona de la misma forma
-
Uso un procedimiento almacenado....
me quedo asi....
WHERE
FECHA >= '''+@FechaInicioArmanda+'''
and FCH_HORA_CREACION <= '''+@FechaFinArmada+'''
and DATEPART(hour, FECHA)>= '''+@HoraInicio+'''
and DATEPART(hour, FECHA)<= '''+@HoraFin+'''
and DATEPART(minute, FECHA)>= '''+@minutoInicio+'''
andDATEPART(minute, FECHA)<= '''+@minutoFin+'''
Gracias....
-
ahora por si queres para que sea entre el primer y ultimo dia de un mes, pasandole solamente el mes como parametro seria asi:
select *
from tabla
where fecha between trunc(to_date('02/2009','MM/RRRR')) and last_day(to_date('02/2009','MM/RRRR'))
and to_char(fecha,'hh24') >= 13
otra vez, probado en oracle, desconozco si la funcion last_day esta en sqlserver, o si la funcion trunc funciona de la misma forma
Es exactamente lo mismo que iba a postear yo, jeje