La risposta corretta è SYSDATE () .
INSERT INTO servers (
server_name, online_status, exchange, disk_space,
network_shares, date_time
)
VALUES (
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);
Possiamo cambiare questo comportamento e farci NOW()
comportare allo stesso modo SYSDATE()
impostando l' argomento della riga di comando sysdate_is_now su True
.
Nota che NOW()
(che ha CURRENT_TIMESTAMP()
come alias), differisce SYSDATE()
in modo sottile :
SYSDATE () restituisce l'ora in cui viene eseguita. Ciò differisce dal comportamento di NOW (), che restituisce un tempo costante che indica l'ora in cui è iniziata l'esecuzione dell'istruzione. (All'interno di una funzione o trigger memorizzato, NOW () restituisce il momento in cui la funzione o l'istruzione di attivazione ha iniziato a essere eseguita.)
Come indicato da Erandi , è meglio creare la tabella con la DEFAULT
clausola in modo che la colonna venga popolata automaticamente con il timestamp quando si inserisce una nuova riga:
date_time datetime NOT NULL DEFAULT SYSDATE()
Se si desidera la data corrente in formato epoca , è possibile utilizzare UNIX_TIMESTAMP () . Per esempio:
select now(3), sysdate(3), unix_timestamp();
cederebbe
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
Relazionato: