mysql.h


UNIX_TIMESTAMP()

UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)

Si es llamada sin argumentos, devuelve un timestamp Unix (segundos desde '1970-01-01 00:00:00' GMT) como un entero sin signo. Si es llamada con un argumento fecha, devuelve el valor del argumento como segundos desde '1970-01-01 00:00:00' GMT. date debe ser una cadena DATE, una cadena DATETIME, un TIMESTAMP o un número en el formato YYMMDD o YYYYMMDD en hora local:

mysql> SELECT UNIX_TIMESTAMP();
+------------------+
| UNIX_TIMESTAMP() |
+------------------+
|       1072555517 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00') |
+---------------------------------------+
|                             875996580 |
+---------------------------------------+
1 row in set (0.02 sec)

Cuando se usa UNIX_TIMESTAMP en una columna TIMESTAMP, la función devuelve el valor interno timestamp directamente, sin la conversión implícita "string-to-Unix-timestamp". Si se usa una fecha fuera de rango a UNIX_TIMESTAMP() devuelve 0, pero hay que tener en cuenta que sólo se hace una comprobación básica (año en el margen 1970-2037, mes en 01-12 y día en 01-31). Si se quieren restar columnas UNIX_TIMESTAMP(), puede desearse convertir el resultado a enteros con signo.