La bonne réponse est SYSDATE () .
INSERT INTO servers (
server_name, online_status, exchange, disk_space,
network_shares, date_time
)
VALUES (
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);
Nous pouvons modifier ce comportement et le faire NOW()
se comporter de la même manière qu'en SYSDATE()
définissant l' argument de ligne de commande sysdate_is_now sur True
.
Notez que NOW()
(qui a CURRENT_TIMESTAMP()
un alias), diffère de SYSDATE()
dans une subtile façon:
SYSDATE () renvoie l'heure à laquelle il s'exécute. Cela diffère du comportement de NOW (), qui renvoie une heure constante indiquant l'heure à laquelle l'instruction a commencé à s'exécuter. (Dans une fonction ou un déclencheur stocké, NOW () renvoie l'heure à laquelle la fonction ou l'instruction de déclenchement a commencé à s'exécuter.)
Comme indiqué par Erandi , il est préférable de créer votre table avec la DEFAULT
clause afin que la colonne se remplisse automatiquement avec l'horodatage lorsque vous insérez une nouvelle ligne:
date_time datetime NOT NULL DEFAULT SYSDATE()
Si vous voulez la date actuelle au format d' époque , vous pouvez utiliser UNIX_TIMESTAMP () . Par exemple:
select now(3), sysdate(3), unix_timestamp();
céderait
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
En relation: