Как вставить текущее время в запрос postgresql insert
INSERT into Group (Name,CreatedDate) VALUES ('Test',UTC_TIMESTAMP(), 1);
Это запрос, который я использовал для mysql для вставки текущего времени.
Когда я использую это в postgresql, я становлюсь ниже ошибки.
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function utc_timestamp() does not exist
SQL state: 42883
Я пробовал, как показано ниже, используя now()
, однако он вставляет, как "2016-07-07 17:01:18.410677"
. Мне нужно вставить в формат 'yyyymmdd hh:mi:ss tt'
.
INSERT into Group (Name,CreatedDate) VALUES ('Test',UTC_TIMESTAMP(), 1);
Как вставить текущее время даты в запрос вставки postgresql в вышеприведенном формате?
Ответы
Ответ 1
Столбцы timestamp
(или date
или time
) имеют НЕ "формат".
Любое форматирование, которое вы видите, применяется клиентом SQL, который вы используете.
Чтобы вставить текущее время, используйте current_timestamp
как описано в руководстве:
INSERT into "Group" (name,createddate)
VALUES ('Test', current_timestamp);
Чтобы отобразить это значение в другом формате, измените конфигурацию вашего SQL-клиента или отформатируйте значение при выборе данных:
select name, to_char(createddate, ''yyyymmdd hh:mi:ss tt') as created_date
from "Group"
Для psql
(клиент командной строки по умолчанию) вы можете настроить формат отображения с помощью параметра конфигурации DateStyle
: https://www.postgresql.org/docs/current/static/runtime-config-client.html#GUC-DATESTYLE
Ответ 2
Вы можете, конечно, форматировать результат current_timestamp()
.
Пожалуйста, ознакомьтесь с различными функциями форматирования в официальной документации.
Ответ 3
Для текущего datetime вы можете использовать функцию now() в postgresql insert query.
Вы также можете ссылаться на следующую ссылку.
инструкция insert в postgres для временной метки типа данных без часового пояса NOT NULL,.