una soporta segundo rapida por optimizar mas lentas lenta hacer cuello cuantas consultas consulta con como botella mysql timestamp

soporta - Diferencia de marca de tiempo de MySQL



optimizar consultas mysql explain (2)

use TIMESTAMPDIFF

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

donde unidad argumento, que debe ser uno de los siguientes valores: MICROSECOND (microsegundos), SEGUNDO, MINUTO, HORA, DÍA, SEMANA, MES, TRIMESTRE o AÑO.

mi enfoque: establecer unidad como SEGUNDO y luego usar SEC_TO_TIME

SELECT SEC_TO_TIME(TIMESTAMPDIFF(SECOND,`table`.`time_column`,CURRENT_TIMESTAMP())) // will return in hh:mm:ii format

actualizar

¿Devolver si la HourDifference es menos de 48 horas? de lo contrario no

SELECT IF(TIMESTAMPDIFF(HOUR,`time_column`,CURRENT_TIMESTAMP())< 48 ,''yes'',''no'')

Tengo una tabla con column timestam que almacena una marca de tiempo con este formato: "2012-12-10 21:24:30"

Estoy buscando una consulta SQL que tome la marca de tiempo actual y la resta con la de la columna y da la diferencia en este formato:

"3 horas y 2 minutos restantes"

Buscando una consulta MySQL que hace eso.


Suponga que su nombre de tabla es ''testtable''

La consulta de creación de tablas se proporciona a continuación

CREATE TABLE `testtable` ( `id` INT(2) NOT NULL AUTO_INCREMENT, `period` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY (`id`) )

Inserta algunos datos para probar mi consulta. Consulta para insertar algunos datos se da a continuación

INSERT INTO `testtable` (`id`, `period`) VALUES (1, ''2012-12-10 17:21:09''), (2, ''2012-11-06 18:21:12''), (3, ''2012-12-06 18:21:18''), (4, ''2012-12-06 19:21:24''), (5, ''2012-12-06 18:21:27'');

Ahora ejecuta la siguiente consulta para obtener tu respuesta

SELECT *, CONCAT(HOUR(difftime), '' hours '', MINUTE(difftime), '' Minutes '', SECOND(difftime), '' seconds remaining'') AS timetaken FROM (SELECT *, SEC_TO_TIME(UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP( ttable.period)) AS diffTime FROM testtable ttable) AS temptable1

La salida se da a continuación

La columna ''timetaken'' mostrará respuesta.