lunes, 22 de junio de 2015

Fechas en FoxPro para Select y Update

Trabajar la bases de datos de FoxPro desde php a sacado canas a algunos, ya que al estar tan acostumbrados a Sql o Mysql conseguir consultas que traigan los datos como los requerimos es un poco mas de detalle. Las Fechas por ejemplo son un karma ya que estas manejan formatos completamente diferentes y Php debe acomodarlos para que resulten entendible a la hora de traer la fecha. El siguiente ejemplo, mostraremos como traer una fecha desde una base de datos dentro de FoxPro y mostrarla en un formulario en Php, usando para esto un Select, luego permitiremos editar esta fecha y actualizarla en la misma base de datos usando un Update.
Manos a la obra.

**Para traer una fecha desde FoxPro se debe usar: SUBSTR y DTOC.

substr = Devuelve parte de una cadena.

dtoc = Devuelve una cadena de caracteres correspondiente a la expresión de Date o de DateTime. 

La estructura quedaría de la siguiente manera:


SELECT SUBSTR(DTOC(fecha_apertura_cli,1), 5, 2) + '/' + 
SUBSTR(DTOC(fecha_apertura_cli,1), 7, 2) + '/' + SUBSTR(DTOC(fecha_apertura_cli,1), 1, 4) 
AS fechaaperturacliente 
FROM clientes 
WHERE estado = 1

Que se hace en este código?: se toma la fecha de apertura y por medio de substr, se escojen los caracteres que necesitamos para el año, mes y día; se realiza tres veces debido a que tomamos con la primera mes con la segunda día y la tercera año, separados con '/' de esta forma se puede traer la fecha desde Fox para mostrarla en Php y si se quiere actualizar nuevamente este la va a tomar con el formato adecuado.

El resultado sería: 06/23/2015

**Ahora al actualizar una fecha con Update, para que se guarde en la base de datos de Fox se debe hacer lo siguiente:

UPDATE clientes SET fecha_apertura_cli = {".$fechaaperturacliente."} ";

Los { } encerrando la variable que contiene la fecha en este caso $fechaaperturaclientee,  permite que se actualice la fecha en Foxpro ya que esta es la forma de decirle a la base de datos que lo que se quiere actualizar es un campo Date. Siempre que se quier actualizar un campo de tipo Fecha se debe usar los corchetes, así evitaran errores al  correr la actualización.

Nota: se debe recordar que para actualizar la fecha esta debe estar en el formato en que Fox esta configurado para que actualice correctamente.

1 comentario: