Правильный ответ SYSDATE () .
INSERT INTO servers (
server_name, online_status, exchange, disk_space,
network_shares, date_time
)
VALUES (
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);
Мы можем изменить это поведение и заставить NOW()
себя вести себя так же, как SYSDATE()
установив аргумент командной строки sysdate_is_now в True
.
Следует отметить , что NOW()
(который имеет в CURRENT_TIMESTAMP()
качестве псевдонима), отличается от SYSDATE()
в тонком образом:
SYSDATE () возвращает время выполнения. Это отличается от поведения для NOW (), которая возвращает постоянное время, которое указывает время, когда оператор начал выполняться. (Внутри сохраненной функции или триггера NOW () возвращает время, когда функция или оператор запуска начали выполняться.)
Как указывает Erandi , лучше создать таблицу с DEFAULT
предложением, чтобы при вставке новой строки столбец автоматически заполнялся меткой времени:
date_time datetime NOT NULL DEFAULT SYSDATE()
Если вы хотите текущую дату в формате эпох , тогда вы можете использовать UNIX_TIMESTAMP () . Например:
select now(3), sysdate(3), unix_timestamp();
даст
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
Связанный: