Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PostgreSQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=42)
-   -   2 problemas con la hora,time (https://www.clubdelphi.com/foros/showthread.php?t=58466)

cascarrabias 21-07-2008 19:13:50

2 problemas con la hora,time
 
Hola, a todos tengo una tabla donde tengo un campo hora de tipo time without timestamp, en el cual con el comando...current_time guardo en el la hora, lo cual hace correctamente, pero me ocurren 2 inconsistencias que acontinuacion explico...

1.- la hora del servidor esta 6 horas adelantada de la hora real, es decir si es la 1 de la tarde, el servidor me guarda en el campo con current_time las 18 horas es decir las 6 de la tarde...

2.- si consulto desde delphi con un simple query "select hora from mitabla", y visualizo el dataset con un dbgrid, siempre me da las 12:00:00 am


el servidor es postgre 8.2, la aplicacion cliente corre en la misma maquina donde esta el servidor, es decir localhost. Utilizo los componentes zeos para conectarme.
espero alguien tenga alguna sugerencia...de antemano gracias.

donald shimoda 21-07-2008 19:28:37

Cita:

Empezado por cascarrabias (Mensaje 301970)
Hola, a todos tengo una tabla donde tengo un campo hora de tipo time without timestamp, en el cual con el comando...current_time guardo en el la hora, lo cual hace correctamente, pero me ocurren 2 inconsistencias que acontinuacion explico...

1.- la hora del servidor esta 6 horas adelantada de la hora real, es decir si es la 1 de la tarde, el servidor me guarda en el campo con current_time las 18 horas es decir las 6 de la tarde...

Este es el comportamiento esperado o no entiendo tu pregunta.

Cita:

Empezado por cascarrabias (Mensaje 301970)
2.- si consulto desde delphi con un simple query "select hora from mitabla", y visualizo el dataset con un dbgrid, siempre me da las 12:00:00 am

Ahí si que me dejas rebotando. No se me ocurre que puede ser , suponiendo que el tipo de datos sea el correcto, etc, si pasas los fuentes o el formulario en texto quizás descubra cual es el tema.

Ah, y siempre di que versión de zeos usas.
Saludos.

cascarrabias 21-07-2008 20:46:00

Cita:

Empezado por donald shimoda (Mensaje 301978)
Este es el comportamiento esperado o no entiendo tu pregunta.



Ahí si que me dejas rebotando. No se me ocurre que puede ser , suponiendo que el tipo de datos sea el correcto, etc, si pasas los fuentes o el formulario en texto quizás descubra cual es el tema.

Ah, y siempre di que versión de zeos usas.
Saludos.


gracias...me parece que utilizo la 6.6.2 era una que todavia estaba en test, pero la ventaja es que se instala facilmente en delphi 2007..
en cuanto llegue a mi casa te paso el formulario, realmente es muysimple...pero porfa me podras explicar lo de la hora? como que es correcto que este 6 horas adelantado? disculpa la ignorancia...

donald shimoda 21-07-2008 20:49:03

Cita:

Empezado por cascarrabias (Mensaje 302024)
gracias...me parece que utilizo la 6.6.2 era una que todavia estaba en test, pero la ventaja es que se instala facilmente en delphi 2007..
en cuanto llegue a mi casa te paso el formulario, realmente es muysimple...pero porfa me podras explicar lo de la hora? como que es correcto que este 6 horas adelantado? disculpa la ignorancia...

Vos decís que esa es la hora del server (que supongo esta en otra zona horaria, o simplemente mal configurada la hora), por tanto la esta tomando o bien de donde se ejecuta el servidor o bien de donde se ejecuta la base de datos.

Como no me quedo claro si es una aplicacion cliente contra un motor de base de datos directo, no se cual de los dos esta afectando.

Saludos.

cascarrabias 21-07-2008 22:02:38

Cita:

Empezado por donald shimoda (Mensaje 302026)
Vos decís que esa es la hora del server (que supongo esta en otra zona horaria, o simplemente mal configurada la hora), por tanto la esta tomando o bien de donde se ejecuta el servidor o bien de donde se ejecuta la base de datos.

Como no me quedo claro si es una aplicacion cliente contra un motor de base de datos directo, no se cual de los dos esta afectando.

Saludos.

mira, el sistema donde esta instalado postgre marca la 1, y el postgre al guardar la hora, marcar las 6 en ese mismo momento, donde supongo que tienes razon es en que esta mal configurada la hora del postgre, pero como la configuro, no se supone que deberia tomar la hora del sistema en el que esta corriendo? por cierto esta corriendo en windows server

cascarrabias 21-07-2008 22:34:26

Mira, esto es lo unico que tengo en el formulario:
los datos fecha y usrlist los da el usuario...

Código Delphi [-]
 Form1.zQuery1.SQL.Text := 'SELECT accion,hora FROM "__aaaeventos"   
 WHERE fecha='''+fecha+''' AND usuario='''+Usrlist.text+'''; ';
  Form1.zQuery1.Open;

de ahi, el dbgrid que esta asociado al dataset del query1 se llena correctamente con el campo accion con todas las acciones realizadas pero en el campo hora, todas marcan las 12:00:00 am, y si lo consulto directamente a la base de datos mediante el pgAdmin las horas si son distintas....
que podra ser?

2-D@monic 29-07-2008 05:33:44

si no me equivoco le estas dando parámetros a tu consulta de la fecha y el usuario no?... creo que deberías verificar la función que estas ejecutando (si es que es así) o en trozo de código estas ejecutando el current_time.
Podrías ser más preciso.......... utilizas funciones en postgresql o ejecutas sql en delphi desde el cliente.

cascarrabias 29-07-2008 06:03:13

Cita:

Empezado por 2-D@monic (Mensaje 304050)
si no me equivoco le estas dando parámetros a tu consulta de la fecha y el usuario no?... creo que deberías verificar la función que estas ejecutando (si es que es así) o en trozo de código estas ejecutando el current_time.
Podrías ser más preciso.......... utilizas funciones en postgresql o ejecutas sql en delphi desde el cliente.


Hola, gracias, el current_time lo utilizo en un funcion postgre para guardar la hora en la tabla, lo cual hace correctamente, si lo consulto directamente en pgadmin o desde consola, la hora se guarda "correctamente" con 6 horas de diferencia que comentaba y tambien esta el problema de que si hago la consulta desde delphi con zeos, esa columna hora llega con puro 12:00 am, el codigo de la funcion postgre solo es asi:
Código SQL [-]

execute
'INSERT INTO "__aaaeventos" (usuario,accion,fecha,hora) 
 VALUES('''|| usuario ||''','''|| evento ||''',current_date,current_time)';


La franja horaria es GMT +2. Ahora son las 16:32:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi