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

problemas para ingresar fechas

Estas en el tema de problemas para ingresar fechas en el foro de PostgreSQL en Foros del Web. Hola amigos soy nuevo en este foro pero queria consultar un pequeño problema que tengo estoy enviando desde mi pagina PHP los datos para ingresar ...
  #1 (permalink)  
Antiguo 22/09/2009, 10:06
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
problemas para ingresar fechas

Hola
amigos soy nuevo en este foro
pero queria consultar un pequeño problema que tengo

estoy enviando desde mi pagina PHP los datos para ingresar en la base de datos postgres
me envia todo bien ..... pero envio la fecha que ingreso en la caja de texto como string para convertirla en la instruccion sql que creo
bueno aca les copio como lo tengo y tengo que ingresar pfecha (que esta como string) a fecha_recibido (que esta como date en la tabla)


Código:
-- Function: pau_guardar_documento(integer, character varying, integer, integer)

-- DROP FUNCTION pau_guardar_documento(integer, character varying, integer, integer);

CREATE OR REPLACE FUNCTION pau_guardar_documento(pcodigo integer, pfecha character varying, pinstitucion integer, pdocumento integer)
  RETURNS void AS
$BODY$

BEGIN
   LOOP
	
   
        UPDATE recibidos
	    SET cod_inst = pinstitucion, 
	        cod_doc = pdocumento, 
	        fecha_recibido = pfecha
	        	 
	  WHERE folio_recibidos like pcodigo;
	  
        IF found THEN
            RETURN;
        END IF;
        -- not there, so try to insert the key
        -- if someone else inserts the same key concurrently,
        -- we could get a unique-key failure
        BEGIN
	   INSERT INTO recibidos(folio_recibidos,cod_inst,cod_doc,fecha_recibido)
           VALUES (pcodigo,pinstitucion,pdocumento, pfecha); 
            RETURN;
        EXCEPTION WHEN unique_violation THEN
            -- do nothing, and loop to try the UPDATE again
        END;
	END LOOP;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION pau_guardar_documento(integer, character varying, integer, integer) OWNER TO postgres;

se agradeceria ayuda :D
  #2 (permalink)  
Antiguo 22/09/2009, 10:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problemas para ingresar fechas

Cita:
BEGIN
INSERT INTO recibidos(folio_recibidos,cod_inst,cod_doc,fecha_r ecibido)
VALUES (pcodigo,pinstitucion,pdocumento, pfecha);
RETURN;
Puedes utilizar la función to_date.

Código sql:
Ver original
  1. BEGIN
  2.        INSERT INTO recibidos(folio_recibidos,cod_inst,cod_doc,fecha_recibido)
  3.            VALUES (pcodigo,pinstitucion,pdocumento, to_date(pfecha,'formato'));
  4.             RETURN;

En formato, puedes utilizar los mencionados aca

Nos cuentas como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 22/09/2009, 11:28
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: problemas para ingresar fechas

gracias por responder

mira amigo ..... lo ejecuto y me lo acepta .... pero sigue sin guardar el registro
reviso la tabla para ver si el dato recien guardado esta
y no pasa nada

incluso en la funcion que me envia los datos a la sentencia guardar en postgres me muestra los datos ya que los imprimi y pause para revisar y si me da los datos
por eso no teniendo por que no me guarda si envia los datos correctos :S

Cita:
public static function Guardar($pcodigo, $pfecha, $pinstitucion, $pdocumento) {
echo $pcodigo;
echo "------";
echo $pfecha;
echo "------";
echo $pinstitucion;
echo "------";
echo $pdocumento;
exit(); // esta parte la ocupe como prueba para ver si me
// arrojaba el valor de los datos que ingresaba en
// mi formulario.... y si me los muestra correctos
// y como continua abajo... se supone que tiene que
// ahora tiene que ejecutar en postgres l instruccion
// ya que mi conexion a la BD esta buen y funcionando
$fas_query = "SELECT pau_guardar_documento($pcodigo, '$pfecha', $pinstitucion, $pdocumento);";
$res = pg_query(administradorDatos::getConexion(), $fas_query);
}
  #4 (permalink)  
Antiguo 22/09/2009, 12:12
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problemas para ingresar fechas

secate..

Podrías postear el valor de la impresión de la variable $pfecha?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 22/09/2009, 13:30
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: problemas para ingresar fechas

es el valor ingresado en la caja de texto fecha .... el value
ejemplo un value ingresado "2009/09/22"
  #6 (permalink)  
Antiguo 22/09/2009, 13:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problemas para ingresar fechas

Por el lado de postgres esto funciona. Miralo aca:

Código postgres:
Ver original
  1. pruebas=# create table fechas(fecha date);
  2. CREATE TABLE
  3. pruebas=# insert into fechas values('2009/09/22');
  4. INSERT 0 1
  5. pruebas=# select *from fechas;
  6.    fecha
  7. ------------
  8.  2009-09-22
  9. (1 fila)
  10.  
  11. pruebas=# insert into fechas values(to_date('2009/09/22','YYYY/MM/DD'));
  12. INSERT 0 1
  13. pruebas=# select *from fechas;
  14.    fecha
  15. ------------
  16.  2009-09-22
  17.  2009-09-22
  18. (2 filas)
  19.  
  20. pruebas=#

algo que puedes probar es esto:
Código sql:
Ver original
  1. BEGIN
  2.        INSERT INTO recibidos(folio_recibidos,cod_inst,cod_doc,fecha_recibido)
  3.            VALUES (pcodigo,pinstitucion,pdocumento, pfecha::DATE);
  4.             RETURN;

El único campo que se queda sin insertar es la fecha?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 22/09/2009, 14:42
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: problemas para ingresar fechas

nop no ingresa ningun otro campo ....... y supuestamente la conexion ala base de datos esta corriendo ya que cargo listas desde la base de datos y me las muestra bien
  #8 (permalink)  
Antiguo 22/09/2009, 14:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problemas para ingresar fechas

vamos por partes:
haz una impresión de esta variable:
$fas_query = "SELECT pau_guardar_documento($pcodigo, '$pfecha', $pinstitucion, $pdocumento);";

Lo que te de la impresión, pegalo directamente en postgres y asegurate que la sentencia se ejecute correctamente.

Si la sentencia se ejecuta correctamente, el problema se encuentra desde php, pero si tiene errores, el problema es de postgresql y miramos como lo sulucionamos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 22/09/2009, 19:24
Avatar de SECATE  
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: problemas para ingresar fechas

vale lo probare ..... disculpa por tardarme en responder ...... pero me quede sin internet xD
probare aer que pasa
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 10:05.