La respuesta correcta es SYSDATE () .
INSERT INTO servers (
server_name, online_status, exchange, disk_space,
network_shares, date_time
)
VALUES (
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);
Podemos cambiar este comportamiento y hacer que se NOW()
comporte de la misma manera que SYSDATE()
configurando el argumento de la línea de comando sysdate_is_now en True
.
Tenga en cuenta que NOW()
(que tiene CURRENT_TIMESTAMP()
como un alias), difiere de SYSDATE()
una manera sutil :
SYSDATE () devuelve la hora a la que se ejecuta. Esto difiere del comportamiento de NOW (), que devuelve un tiempo constante que indica el momento en que la declaración comenzó a ejecutarse. (Dentro de una función almacenada o desencadenante, NOW () devuelve el momento en que la función o la declaración desencadenante comenzó a ejecutarse).
Como lo indicó Erandi , es mejor crear su tabla con la DEFAULT
cláusula para que la columna se rellene automáticamente con la marca de tiempo cuando inserte una nueva fila:
date_time datetime NOT NULL DEFAULT SYSDATE()
Si desea la fecha actual en formato de época , puede usar UNIX_TIMESTAMP () . Por ejemplo:
select now(3), sysdate(3), unix_timestamp();
cedería
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
Relacionado: