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

Duda con DATEDIFF

Estas en el tema de Duda con DATEDIFF en el foro de Mysql en Foros del Web. Tengo el siguiente código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $query = "SELECT DATEDIFF(NOW(),fecha) fecha FROM efectos" ; $result = mysql_query ( $query ) ; ...
  #1 (permalink)  
Antiguo 30/12/2011, 01:13
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 2 meses
Puntos: 4
Duda con DATEDIFF

Tengo el siguiente código:


Código PHP:
Ver original
  1. $query = "SELECT DATEDIFF(NOW(),fecha) fecha FROM efectos";
  2. $result = mysql_query($query);
  3.  
  4. while ($row = mysql_fetch_row($result)){
  5.     $num = $row[0];
  6.     echo $num . "-" . $row[0];
  7. }

si la fecha del post es: 2011-12-29 05:40:00
y la fecha actual es: 2011-12-29 05:50:00

lo que me muestra es esto: --4-40-0

donde no se que significa 4 ni 40, supongo que el 0 es el día que paso.. como puedo hacer para que salga algo así:

Publicado hace 15 minutos (cuando pasa los minutos u horas)
  #2 (permalink)  
Antiguo 30/12/2011, 05:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda con DATEDIFF

Manual

Cita:
DATEDIFF() returns expr1 – expr2 expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
-> -31
Cita:
TIMEDIFF(expr1,expr2)

TIMEDIFF() returns expr1 – expr2 expressed as a time value. expr1 and expr2 are time or date-and-time expressions, but both must be of the same type.

mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('2008-12-31 23:59:59.000001',
-> '2008-12-30 01:01:01.000002');
-> '46:58:57.999999'
A partir de ese valor deberias formatear la salida como quieras

Para 46:58:57.999999

Publicado hace 1 dia, 22 horas, 58 minutos con 57 segundos (cuando pasa los minutos u horas)

Cita:
TIME_FORMAT(time,format)

This is used like the DATE_FORMAT() function, but the format string may contain format specifiers only for hours, minutes, seconds, and microseconds. Other specifiers produce a NULL value or 0.

If the time value contains an hour part that is greater than 23, the %H and %k hour format specifiers produce a value larger than the usual range of 0..23. The other hour format specifiers produce the hour value modulo 12.

mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
-> '100 100 04 04 4'
manual, manual, manual, manual, manual, manual, manual!!!!
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: fecha
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 08:24.