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

[SOLUCIONADO] Consulta con UNIXTIME en SELECT

Estas en el tema de Consulta con UNIXTIME en SELECT en el foro de Mysql en Foros del Web. Hola mi consulta es la siguiente, tengo la siguiente búsqueda sql: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT jad6s_rsticketspro_tickets.id , jad6s_rsticketspro_tickets. date , jad6s_rsticketspro_tickets.code , ...
  #1 (permalink)  
Antiguo 30/03/2013, 16:41
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta Consulta con UNIXTIME en SELECT

Hola mi consulta es la siguiente, tengo la siguiente búsqueda sql:

Código MySQL:
Ver original
  1. SELECT jad6s_rsticketspro_tickets.id, jad6s_rsticketspro_tickets.date, jad6s_rsticketspro_tickets.code, jad6s_rsticketspro_custom_fields_values.value, jad6s_rsticketspro_ticket_messages.message, jad6s_rsticketspro_tickets.subject, jad6s_rsticketspro_ticket_notes.text
  2. from jad6s_rsticketspro_tickets, jad6s_rsticketspro_custom_fields_values, jad6s_rsticketspro_ticket_messages, jad6s_rsticketspro_ticket_notes,
  3. where jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_custom_fields_values.ticket_id
  4.     and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_messages.ticket_id
  5.     and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_notes.ticket_id
  6. GROUP BY jad6s_rsticketspro_tickets.code
  7. ORDER BY jad6s_rsticketspro_tickets.id DESC;

Hasta aquí todo bien si no fuese por que en la columna jad6s_rsticketspro_tickets.date los datos son fechas almacenadas en formato timestamp, he estado leyendo y leyendo pero no consigo saber como transformar a formato legible, se que se debe utilizar FROM_UNIXTIME(unix_timestamp) pero no se como ni donde colocarlo en esta consulta.
Alguien me podría ayudar.
Gracias

Última edición por gnzsoloyo; 30/03/2013 a las 17:26 Razón: SQL mal etiquetado y codigo de programacion no permitido
  #2 (permalink)  
Antiguo 30/03/2013, 17:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta con UNIXTIME en SELECT

Bueno, mirando el manual de referencia de MySQL (http://dev.mysql.com/doc/refman/5.0/...functions.html), me cuesta entender qué es lo que no entiendes del uso del FROM_UNIXTIME():
Cita:
- FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format)
Retorna una representación del argumento unix_timestamp como un valor en formato 'YYYY-MM-DD HH:MM:SS' o YYYYMMDDHHMMSS , dependiendo de si la función se usa en un formato numérico o de cadena de caracteres.

Código MySQL:
Ver original
  1. mysql> SELECT FROM_UNIXTIME(875996580);
  2.         -> '1997-10-04 22:23:00'
  3. mysql> SELECT FROM_UNIXTIME(875996580) + 0;
  4.         -> 19971004222300
Si se da format, el resultado se formatea según la cadena format. format puede contener los mismos especificadores que los listados en la entrada para la función DATE_FORMAT() .

Código MySQL:
Ver original
  1. mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x');
  2.         -> '2003 6th August 06:22:58 2003'
¿Qué parte de ese uso es lo que no entiendes?
Yo no lo encuentro dificultoso...

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/03/2013, 04:05
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Consulta con UNIXTIME en SELECT

Perdona mi ignorancia soy nuevo en php mysql, lo que no se es donde incluir la función , dentro del selct , en el front un selct para el SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
de todas las formas que he probado me da Error en consulta.
No se si me explique bien en la consulta la columna date "fechas", tiene + de mil registros.
  #4 (permalink)  
Antiguo 31/03/2013, 04:16
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Consulta con UNIXTIME en SELECT

Si lo pongo asi:
Código MySQL:
Ver original
  1. SELECT  FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x'), jad6s_rsticketspro_tickets.id, jad6s_rsticketspro_tickets.date, jad6s_rsticketspro_tickets.code, jad6s_rsticketspro_tickets.status_id, jad6s_rsticketspro_custom_fields_values.value, jad6s_rsticketspro_ticket_messages.message, jad6s_rsticketspro_tickets.subject, jad6s_rsticketspro_ticket_notes.text
  2. from jad6s_rsticketspro_tickets, jad6s_rsticketspro_custom_fields_values, jad6s_rsticketspro_ticket_messages, jad6s_rsticketspro_ticket_notes
  3. where jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_custom_fields_values.ticket_id
  4. and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_messages.ticket_id
  5. and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_notes.ticket_id
  6. GROUP BY jad6s_rsticketspro_tickets.code
  7. ORDER BY jad6s_rsticketspro_tickets.id DESC
me arroja la fecha actual delante de cada registro, pero la columna date sigue igual.
Si lo coloco asi:
Código MySQL:
Ver original
  1. SELECT jad6s_rsticketspro_tickets.id, FROM_UNIXTIME(UNIX_TIMESTAMP(jad6s_rsticketspro_tickets.date), '%Y %D %M %h:%i:%s %x'), jad6s_rsticketspro_tickets.code, jad6s_rsticketspro_tickets.status_id, jad6s_rsticketspro_custom_fields_values.value, jad6s_rsticketspro_ticket_messages.message, jad6s_rsticketspro_tickets.subject, jad6s_rsticketspro_ticket_notes.text
  2. from jad6s_rsticketspro_tickets, jad6s_rsticketspro_custom_fields_values, jad6s_rsticketspro_ticket_messages, jad6s_rsticketspro_ticket_notes
  3. where jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_custom_fields_values.ticket_id
  4. and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_messages.ticket_id
  5. and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_notes.ticket_id
  6. GROUP BY jad6s_rsticketspro_tickets.code
  7. ORDER BY jad6s_rsticketspro_tickets.id DESC
me arroja al principio en cada registro : 1970 1st January 01:00:00 1970

Última edición por gnzsoloyo; 31/03/2013 a las 05:12 Razón: Etiquetado incorrecto. Usar Highligh "MySQL"
  #5 (permalink)  
Antiguo 31/03/2013, 05:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta con UNIXTIME en SELECT

Vamos por partes, porque el problema parece ser que te cuesta interpretar el manual:
En el primer caso, el manual de referencia explica claramente cómo se hace cuando ya tienes un valor. Que el valor esté en un registro lo unico que cambia es que lo que pones es el campo:
Código MySQL:
Ver original
  1. SELECT FROM_UNIXTIME(875996580);
Simplemente lo escribes como:
Código MySQL:
Ver original
  1. FROM tabla;

El segundo ejemplo del manual solo se refiere a cómo formatear una fecha dada, pero el uso de la función UNIX_TIMESTAMP() tiene por único motivo obtener la fechas del sistema para ejemplificarlo. Ergo, UNIX_TIMESTAMP() es la fecha actual del sistema, y no debe usarse para tu caso...

Lo tuyo, en definitiva, es simplemente (una vez limpiado) :
Código MySQL:
Ver original
  1.     JT.id,
  2.     FROM_UNIXTIME(JT.date, '%d/%m/%Y') FECHA,
  3.     JT.code,
  4.     JT.status_id,
  5.     JV.value,
  6.     JM.message,
  7.     JT.subject,
  8.     JM.text
  9.     jad6s_rsticketspro_tickets JT,
  10.     INNER JOI N jad6s_rsticketspro_custom_fields_values JV ON JT.id = JV.ticket_id
  11.     jad6s_rsticketspro_ticket_messages JM  ON JT.id = JM.ticket_id
  12.     jad6s_rsticketspro_ticket_notes JN ON JT.id = JN.ticket_id
  13. GROUP BY JT.code

Tips adicionales:
1) Usa alias. Esos nompres kilométricos dificultan leer cualquier consulta...
2) No uses palabras reservadas. CODE, VALUE, TEXT, son palabras reservadas que pueden disparar errores no detectables.
3) Usa INNER JOIN, no la coma. Es más eficiente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 31/03/2013, 06:34
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Consulta con UNIXTIME en SELECT

Gracias, finalmente lo consegui asi :
Código MySQL:
Ver original
  1. SELECT  jad6s_rsticketspro_tickets.id, FROM_UNIXTIME(jad6s_rsticketspro_tickets.date), jad6s_rsticketspro_tickets.code, jad6s_rsticketspro_tickets.status_id, jad6s_rsticketspro_custom_fields_values.value, jad6s_rsticketspro_ticket_messages.message, jad6s_rsticketspro_tickets.subject, jad6s_rsticketspro_ticket_notes.text
  2. from jad6s_rsticketspro_tickets, jad6s_rsticketspro_custom_fields_values, jad6s_rsticketspro_ticket_messages, jad6s_rsticketspro_ticket_notes
  3. where jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_custom_fields_values.ticket_id
  4. and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_messages.ticket_id
  5. and jad6s_rsticketspro_tickets.id = jad6s_rsticketspro_ticket_notes.ticket_id
  6. GROUP BY jad6s_rsticketspro_tickets.code
  7. ORDER BY jad6s_rsticketspro_tickets.id DESC

Gracias por tu ayuda.

Última edición por gnzsoloyo; 31/03/2013 a las 06:42
  #7 (permalink)  
Antiguo 31/03/2013, 06:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta con UNIXTIME en SELECT

Por favor, etiqueta bien el codigo SQL. Para eso están los highlights en la herramienta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 31/03/2013, 06:47
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Consulta con UNIXTIME en SELECT

Perdona, como te dije soy nuevo. en cuanto al nombre de las tablas trabajo sobre joomla y son tablas de un componente instalado los nombres son predefinidos. Igualmente gracias por tus respuestas la consulta la hago por php que me lo transforma a formato excel para descarga.

Etiquetas: select
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 22:50.