Foros del Web » Programando para Internet » PHP »

Problema con consulta mssql + php

Estas en el tema de Problema con consulta mssql + php en el foro de PHP en Foros del Web. Hola: tengo el siguiente problema. Necesito hacer una consulta por fechas a una tabla de una bd en un servidor sqlserver, extraer todos los datos ...
  #1 (permalink)  
Antiguo 12/11/2009, 15:09
Avatar de marie_mar  
Fecha de Ingreso: septiembre-2009
Mensajes: 26
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema con consulta mssql + php

Hola:
tengo el siguiente problema. Necesito hacer una consulta por fechas a una tabla de una bd en un servidor sqlserver, extraer todos los datos que me devuelva e insertar el resultado en una tabla de una bd en un servidor postgresql.

El problema es que no me trae los registros de la fecha final, ejemplo, si le digo que me devuelva los registros comprendidos entre el 05/09/2009 y el 09/09/2009 (5 dias de una semana de octubre) solo me trae los datos del 5 al 8, los del 9 no aparecen en ninguna parte. Este es el código que estoy usando:

//Cargo los datos de la base de datos de personal en sqlserver
$consql = mssql_connect("MDAEMON1","usrfastos","fastosusr");
mssql_select_db("RRHH_MFPv5",$consql);

//ACTUALIZANDO MARCAJES

//Cargo la consulta de la tabla que tiene los datos en SQLServer (CPT_TarjetaAsistencia)
$sqlpm = "";
$sqlpm = mssql_query("SELECT Id_Empleado, MarcaEntrada, MarcaSalida, Clasificado, TiempoTrabajado FROM CPT_TarjetaAsistencia WHERE (MarcaEntrada BETWEEN '$_POST[fechaA]' AND '$_POST[fechaB]')");

//Los $_POST de fechas se seleccionan de un calendario

while($rowsqlpm = mssql_fetch_row($sqlpm))
{
//Aqui ejecuto el codigo para insertar los datos de la fila que me devuelve en la tabla de postgresql
}
//Cierro conexion mssql
mssql_close($consql);

{
?>
<script language="JavaScript" type="text/javascript">
{
alert("Registros actualizados!.");
}
</script>
<?php
}

Obviamente tengo un error garrafal en el codigo, porque por ninguna parte he puesto un next o algo por el estilo, o no lo necesito?
  #2 (permalink)  
Antiguo 12/11/2009, 15:19
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema con consulta mssql + php

Se supone que SQL server interpreta las fechas como "fecha a las 12 am", por ejemplo

BETWEEN '01/01/2009' AND '01/31/2009'

lo interpreta como

BETWEEN '01/01/2009 00:00:00' AND '01/31/2009 00:00:00'

por eso no devuelve los de la segunda fecha, tendrias que usar algo como

BETWEEN '01/01/2009 00:00:00' AND '01/31/2009 23:59:59'


Y no necesitas un "next" (para recorrer los resultados, asumo) ya que mssql_fetch_row devuelve el siguiente registro cada vez que se ejecuta, por lo que cada que se evalua la condicion del while este se mueve al registro siguiente
  #3 (permalink)  
Antiguo 18/11/2009, 07:52
Avatar de marie_mar  
Fecha de Ingreso: septiembre-2009
Mensajes: 26
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con consulta mssql + php

GRACIAS ! ! !
Tenías toda la razón, ya me funcionó. Al final lo que hice fue concatenar el código:

//Obtengo fechas a procesar
$fechai = $_POST[fechaA];
$fechai = $fechai . (' ');
$fechai = $fechai . ('00:00:00');

$fechaf = $_POST[fechaB];
$fechaf = $fechaf . (' ');
$fechaf = $fechaf . ('23:59:59');

Y no, no necesito un next. Gracias nuevamente por tu colaboración.
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 12:45.