Я пытаюсь преобразовать базу данных SQLite в Postgres, я не знаю, что DATETIME равно для базы данных Postgres Полная строка:
CREATE TABLE log
(
id SERIAL PRIMARY KEY NOT NULL UNIQUE,
date DATETIME,
msg TEXT
);
SQLite не имеет класса хранения, выделенного для хранения дат. и/или раз. Вместо этого встроенные функции даты и времени SQLite способны хранить дату и время в виде TEXT, REAL или INTEGER ценности:
ТЕКСТ в виде строк ISO8601 ("ГГГГ-ММ-ДД ЧЧ:ММ:СС.ССС"). НАСТОЯЩИЙ как Julian номера дней, количество дней с полудня по Гринвичу в ноябре. 24, 4714 г. до н.э. по пролептическому григорианскому календарю. ЦЕЛОЕ ЧИСЛО как время Unix, количество секунд, прошедших с 1970-01-01 00:00:00 UTC.
Взято с https://sqlite.org/datatype3.html
Но в Postgres вы можете использовать тип данных timestamp/timestamptz, что легко продемонстрировать здесь
Также код таблицы кажется странным
id SERIAL PRIMARY KEY NOT NULL UNIQUE
Почему вы используете первичный ключ и уникальный вместе?
Вы можете использовать приведенный ниже код в Postgres
CREATE TABLE log
(
id SERIAL PRIMARY KEY,
date timestamp,
msg TEXT
);
Вы можете использовать тип данных Postgresql DATE или TIMESTAMP, который также хранит время.
Кроме того, вы можете использовать VARCHAR(n)
вместо TEXT
для типа данных msg
, если вы не знаете максимальную длину значений, хранящихся в этом столбце:
CREATE TABLE log (id SERIAL PRIMARY KEY, date DATE, msg VARCHAR(255));
ищите доступные типы данных в руководстве