Fechas en SQL

Soy Yadi y trato de hacer un reporte en Crystal, cuya información viene de un sp en SQL. El SP tiene parámetros, que me debe filtrar solo los registros que caen dentro de determinadas fechas.
Tanto los parametros(@DE_LA_FECHA, @A_LA_FECHA), como la fecha comparada(MovtosPeriodoPagos. Fe_Inicio), son tipo smalldatetime, el problema es que al mandarle los parámetros desde Crystal, no me filtra información correcta, y al mandar los parámetros desde el Query Analizer me regresa informac correcta siempre y cuando el campo no tenga hora... ¿Qué puedo hacer?
Sospecho que el problema es la hora... No se...
Mando el stored:
CREATE PROCEDURE SPTMPPAGOS
@DE_LA_FECHA AS SMALLDATETIME,
@A_LA_FECHA AS SMALLDATETIME
AS
SELECT
MovtosPeriodoPagos.Cb_Codigo,
MovtosPeriodoPagos.Pe_Codigo,
MovtosPeriodoPagos.Pe_Year,
MovtosPeriodoPagos.Pa_Clave,
MovtosPeriodoPagos.Fe_Inicio,
MovtosPeriodoPagos.Pa_Abono,
MovtosPeriodoPagos.Pa_Cargo,
MovtosPeriodoPagos.Pa_Saldo,
UPPER(Colabora.Cb_Paterno)+' '+UPPER(Colabora.Cb_Materno)+' '+UPPER(Colabora.Cb_Nombres) AS CB_NOMBRE,
Colabora.Ca_codigo, Colabora.Cb_Ult_Grado,
Colabora.cb_Ult_Turno, Carreras.Ca_Descripcion,
TConceptos.Co_Descripcion
FROM MovtosPeriodoPagos INNER JOIN Colabora ON
MovtosPeriodoPagos.Cb_Codigo = Colabora.Cb_Codigo
INNER JOIN Carreras ON
Colabora.Ca_codigo = Carreras.Ca_Codigo
INNER JOIN TConceptos ON
MovtosPeriodoPagos.Pa_Clave = TConceptos.Co_Codigo
WHERE (MovtosPeriodoPagos.Fe_Inicio BETWEEN @DE_LA_FECHA AND @A_LA_FECHA) AND MovtosPeriodoPagos.Pa_Abono<>0
ORDER BY MovtosPeriodoPagos.Fe_Inicio

1 respuesta

Respuesta
1
Es un problema típico. Cuando tu le pasas una cadena, SQL-Server la entiende de una manera u otra dependiendo de la configuración regional del sistema.
Para no tener más este tipo de problemas, pasa siempre una cadena y después transforma esta cadena a fecha. Ejemplo:
CREATE PROCEDURE SPTMPPAGOS
@DE_LA_FECHA AS varchar(20)
AS
DECLARE @DESDE DATETIME
SET @DESDE = CONVERT (DATETIME, @DE_LA_FECHA, 103)
En la consulta utiliza @desde.
El tercer parámetro depende de cómo pases la fecha, 103 entiende el formato "dd/mm/yy". En la ayuda de convert hay una tabla que te ayudará a elegir el número que te interesa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas