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 changer ce comportement et rendre NOW()
se comportent de la même manière que SYSDATE()
en fixant sysdate_is_now à l'argument de ligne de commande True
.
Il convient de noter que NOW()
(qui a CURRENT_TIMESTAMP()
en tant qu'alias), diffère de SYSDATE()
dans un subtile manière :
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é. l'heure à laquelle l'instruction a commencé à s'exécuter. (Dans une fonction stockée fonction stockée ou un déclencheur, NOW() renvoie l'heure à laquelle la fonction ou l'instruction de déclenchement a commencé à s'exécuter. a commencé à s'exécuter).
Comme l'indique Erandi il est préférable de créer votre tableau à l'aide de l'option DEFAULT
afin que la colonne soit automatiquement remplie avec l'horodatage lorsque vous insérez une nouvelle ligne :
date_time datetime NOT NULL DEFAULT SYSDATE()
Si vous souhaitez que la date actuelle soit indiquée dans époque vous pouvez utiliser le format UNIX_TIMESTAMP() . Par exemple :
select now(3), sysdate(3), unix_timestamp();
donnerait
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
En rapport :