Существуют различные способы указать действительный литерал метки времени .
Я предпочитаю литералы ANSI SQL, например:
timestamp '2018-10-15 18:49:10'
, в котором всегда используется формат меток времени ISO (то есть гггг-мм-дд и 24-часовая нотация).
В качестве альтернативы, в Postgres вы также можете привести строку, которая задает значение в формате ISO, к отметке времени: '2018-10-15 18:49:10'::timestamp
Если вы предпочитаете другие форматы, вы можете использовать to_timestamp
смаска формата, например:
to_timestamp('25.08.2018 21:34:10', 'dd.mm.yyyy hh24:mi:ss');
Чтобы получить текущую дату и время, вы можете использовать current_timestamp
(это стандартный SQL) или now()
(который специфичен для Postgres).
Не связано, но: вы не должны предоставлять значение для столбца user_id
, поскольку оно генерируется автоматически, и, указав значение вручную, вы заставляете базовую последовательность не синхронизироватьсясо вставленными значениями.
Поэтому вы должны использовать:
INSERT INTO account
(username, password, email, created_on )
VALUES
('usernamehere', 'password123', 'admin@yahoo.com', current_timestamp);
В качестве альтернативы вы могли бы указать столбец user_id
, но вместо этого использовать ключевое слово default
:
INSERT INTO account
(user_id, username, password, email, created_on )
VALUES
(DEFAULT, 'usernamehere', 'password123', 'admin@yahoo.com', current_timestamp);
Или, если вы хотите конкретное значение для created_on
:
INSERT INTO account
(username, password, email, created_on )
VALUES
('usernamehere', 'password123', 'admin@yahoo.com', timestamp '2018-10-15 18:49:10');