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 sí 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.