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

[SOLUCIONADO] Mostrar current_timestamp con diferencia horaria

Estas en el tema de Mostrar current_timestamp con diferencia horaria en el foro de Mysql en Foros del Web. Buenos días, Mi consulta es la siguiente: Estoy leyendo los datos de una base Mysql de una tabla con 3 campos: - `Fecha` timestamp NOT ...
  #1 (permalink)  
Antiguo 04/02/2013, 05:07
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Mostrar current_timestamp con diferencia horaria

Buenos días,

Mi consulta es la siguiente:

Estoy leyendo los datos de una base Mysql de una tabla con 3 campos:

- `Fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
- `Nombre` text COLLATE utf8_unicode_ci NOT NULL
- `Texto` text COLLATE utf8_unicode_ci NOT NULL

Esto lo escribo en una tabla dentro de mi web con el siguiente codigo

Código:
$result = mysql_query($sql,$conexion);//REALIZA LA CONSULTA

echo "<table width=\"100%\" border=\"1\" cellspacing=\"3\" cellpadding=\"2\">"; //EMPIEZA A CREAR LA TABLA CON LOS ENCABEZADOS DE TABLA
echo "<tr>";//<tr> CREA UNA NUEVA FILA
echo "<td style=\"width:160px; font-family:Comic Sans MS; font-size:16px\" align=\"center\" >FECHA</td>";//<td> CREA NUEVA COLUMNA
echo "<td style=\"width:190px; font-family:Comic Sans MS; font-size:16px\" align=\"center\">NOMBRE</td>";
echo "<td style=\"font-family:Comic Sans MS; font-size:16px\" align=\"center\">COMENTARIO</td>";
echo "</tr>";

$reg = mysql_fetch_array($result, MYSQL_NUM);//LA VARIABLE $REG GUARDA LOS REGISTROS DE LA CONSULTA REALIZADA
while($reg)
{
echo "<tr>";
echo "<td style=\"font-family:Comic Sans MS; color:#000000; font-size:14px\" align=\"center\">".$reg[0]."</td>";//EN CADA CELDA SE COLOCA EL CONTENIDO DE REG
echo "<td style=\"font-family:Comic Sans MS; color:#000000; font-size:14px\" align=\"center\">".$reg[1]."</td>";
echo "<td style=\"font-family:Comic Sans MS; color:#000000; font-size:14px\" align=\"justify\">".$reg[2]."</td>";
$reg = mysql_fetch_array($result, MYSQL_BOTH);
echo "</tr>";
}
echo "</table>";//FINALIZA LA TABLA
La base SQL tiene la hora en GMT 0 y lo o que me gustaria es que dentro de la columna Fecha pusiese la hora con la diferencia horaria del PC desde donde se lee.

Como puedo modificar mi codigo para conseguirlo?


Un saludo
  #2 (permalink)  
Antiguo 04/02/2013, 09:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Mostrar current_timestamp con diferencia horaria

Si lo que quieres es una diferencia dinámica, con resta por segundo, porque el tiempo sigue corriendo, creo que tendrás que hacerlo con JAVASCRIPT. Pide ayuda en el foro de javascript.
Otra cosa es la resta entre fecha hora de tu campo fecha y el momento en que se realiza la consulta en el servidor. Te será suficiente con una resta de tiempo hora en una consulta (para ello funciones como DATE_SUB pueden ayudarte). Pero eso será luego estático hasta una nueva consulta, y devolverá un dato que será cierto durante un segundo.
  #3 (permalink)  
Antiguo 04/02/2013, 09:19
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar current_timestamp con diferencia horaria

Hola jurena,

Lo que busco exactamente es en esa tabla mostrar los registros que tengo archivados en la SQL con el campo current_timestamp, pero ese campo es en GMT +0 y me gustaria mostrar en mi tabla en campo con la correccion horaria aplicada (en mi caso GMT +1)

Un saludo
  #4 (permalink)  
Antiguo 04/02/2013, 10:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Mostrar current_timestamp con diferencia horaria

Echa un vistazo a la función convert-tz de MySQL:
http://dev.mysql.com/doc/refman/5.5/...ion_convert-tz
  #5 (permalink)  
Antiguo 04/02/2013, 13:52
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar current_timestamp con diferencia horaria

Creo que eso me podria valer, el problema que veo es que los datos los tengo en forma de array

Código:
$reg = mysql_fetch_array($result, MYSQL_NUM);
while($reg)
y no se si se lo puedo aplicar solo a los del campo Fecha de alguna forma
  #6 (permalink)  
Antiguo 04/02/2013, 14:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Mostrar current_timestamp con diferencia horaria

Olvídate ahora de ese código PHP. Debes mostrarnos tu consulta, el código SQL, sobre el que sí podremos ayudarte en este foro. Me refiero al SELECT campo1, campo2, etc. FROM tabla
Código MySQL:
Ver original
  1.  campo1,
  2.  campo2,
  3.  CONVERT_TZ(campofecha,'GMT','MET') campofecha
  4. FROM tabla

y luego recuperas del array los campos
  #7 (permalink)  
Antiguo 04/02/2013, 14:55
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar current_timestamp con diferencia horaria

La consulta que yo envío a la base es la siguiente

Código:
$sql = "select * FROM Firmas ORDER BY `Fecha` DESC"; 
$result = mysql_query($sql,$conexion);
La base contiene los campos "Fecha", "Nombre" y "Comentarios"

Según tu codigo podria usar entonces algo así?

Código:
$sql = "select * FROM Firmas  CONVERT_TZ('Fecha','GMT','MET') 'Fecha' ORDER BY `Fecha` DESC"; 
$result = mysql_query($sql,$conexion);
Un saludo
  #8 (permalink)  
Antiguo 04/02/2013, 15:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Mostrar current_timestamp con diferencia horaria

No debemos escribir en este foro código PHP. La consulta que va entre comillas debería ser esta
Código MySQL:
Ver original
  1. SELECT campo1, campo2, CONVERT_TZ(Fecha,'GMT','MET') Fecha FROM Firmas  ORDER BY `Fecha` DESC
Un consejo, en lugar del asterisco, usa los nombres de los campos que necesites (naturalmente no serán campo1, campo2).

Última edición por jurena; 04/02/2013 a las 15:10
  #9 (permalink)  
Antiguo 04/02/2013, 15:19
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar current_timestamp con diferencia horaria

Con este codigo me devuelve el valor null en el campo Fecha

Código:
SELECT CONVERT_TZ(Fecha,'GMT','MET') Fecha, Nombre, Texto FROM Firmas ORDER BY `Fecha` DESC
Lo he reordenado asi para tener el valor de fecha el primero de los 3. Tambien he probado sin reordenarlo y me devuelve tambien NULL pero con las columas en otro orden

  #10 (permalink)  
Antiguo 04/02/2013, 15:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Mostrar current_timestamp con diferencia horaria

Pues yo he creado una tabla llamada Firmas con esos campos, siendo Fecha un Timestamp que no admite NULL y se rellena con el valor current_timestamp, y el resultado es el esperado. Comprueba que en ese campo Fechas no haya nulos.
  #11 (permalink)  
Antiguo 04/02/2013, 15:33
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar current_timestamp con diferencia horaria

Vale, lo tengo con este codigo funciona

Código:
SELECT CONVERT_TZ(Fecha,'+00:00','+01:00') Fecha, Nombre, Texto FROM Firmas ORDER BY `Fecha` DESC
Tengo que poner cifras, no admite GMT y MET


Muchas gracias jurena!


Un saludo

Etiquetas: campos, diferencia, registros, sql, tabla
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 17:33.