No pude averiguar (googlear, leer el manual de referencia de mysql) cómo obtener el valor de DATETIME en segundos en MySQL.MYSQL - datetime to seconds
No quiero extraer segundos de datetime, sino convertirlos en segundos.
No pude averiguar (googlear, leer el manual de referencia de mysql) cómo obtener el valor de DATETIME en segundos en MySQL.MYSQL - datetime to seconds
No quiero extraer segundos de datetime, sino convertirlos en segundos.
Si usted quiere tener la diferencia entre los valores de fecha y hora, utilice TIMESTAMPDIFF
:
TIMESTAMPDIFF (unidad, datetime_expr1, datetime_expr2)
devoluciones
datetime_expr2 – datetime_expr1
, dondedatetime_expr1
ydatetime_expr2
son de fecha o de fecha y hora expresiones. Una expresión puede ser una fecha y la otra una fecha y hora; un valor de fecha se trata como una fecha y hora teniendo la parte de tiempo '00: 00: 00 'cuando sea necesario. La unidad para el resultado (un entero) viene dada por el argumento de la unidad. Los valores legales para la unidad son los mismos que los enumerados en la descripción de la funciónTIMESTAMPADD()
.
mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
-> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
-> -1
mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
-> 128885
unit
también se puede HOUR
que es lo que solicitó en uno de los comentarios.
Si por "convertir a segundos", que quiere decir "convertir a un UNIX Timestamp" (es decir, número de segundos desde 1970-01-01
), a continuación, puede utilizar la función UNIX_TIMESTAMP
:
select UNIX_TIMESTAMP(your_datetime_field)
from your_table
where ...
Y, en aras de la completitud, para convertir de una marca de tiempo Unix a una fecha y hora, puede usar la función FROM_UNIXTIME
.
bueno y cuando quiero DIFERENCIA entre dos fechas en HORAS, ¿debería usar algo como? : select (unix_timestamp ('2010-01-02 18:00:00') - unix_timestamp ('2010-01-01 16:00:00'))/60/60; – Mike
Supongo que la función TIMESTAMPDIFF debería hacer el truco: permite especificar la unidad deseada (ver http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff) –
gracias, Felix ya sugirió usar timesteampdiff, eso es lo que quería – Mike
La función UNIX_TIMESTAMP (datetime) devuelve el tiempo Unix, que pasa a ser el número de segundos desde el 1-ene-1970 0000 UTC. Eso puede ser lo que necesita, pero no si usted está tratando con fechas de nacimiento, fechas históricas, o fechas posteriores a 2037.
i utilizado en MySQL método
TO_SECONDS (su fecha va aquí) para convertir la fecha a segundos desde el año 0
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
a partir de MySQL 5.5.0 puede utilizar to_seconds()
TO_SECONDS(FIELD_NAME)
FIELD_NAME debe ser DATETIME
tipo
Uso TIME_TO_SEC en versiones anteriores de MySQL
SELECT TIME_TO_SEC (columna de tiempo) de la tabla
He creado mi propia consulta para su problema:
select (hour(*colname*)*3600 + minute(*colname*)*60 + second(*colname*))
from widgets
where id=1;
id=1
si tiene que tomar una fila específica.La pregunta ya fue respondida hace mucho tiempo, y la respuesta aceptada también trata de días, no solo de horas y minutos. El OP aclaró en un comentario que quería calcular la diferencia entre dos fechas en horas. –
Lo siento, pero estoy preguntando todo DATETIME :( – Mike
@ Mike: Vea mi respuesta actualizada. –
dulce :) Marque su respuesta como la correcta :) gracias – Mike