@username5

Создание таблицы в postgresql — TIME WITH TIME ZONE?

Только осваиваю java и SQL. Пытаюсь в коде java создать таблицу с помощью СУБД Postgresql.

Пытаюсь написать такой код:

String requests = "CREATE TABLE REQUESTS" +
"(ID INT id_request NOT NULL," +
"time_request TIME WITH TIME ZONE NOT NULL";
statement.executeUpdate(requests);

Понимаю, что тип "TIME WITH TIME ZONE" указываю, скорее всего, неправильно. Пробовал гуглить, как указывать тип, ничего не нашёл. Подскажите как правильно писать такой тип?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Нужно просто правильно использовать синтах базы данных. Скобки там всякие и запятые иногда ...
CREATE TABLE REQUESTS (
  	ID INT, 
  	id_request INT NOT NULL,
        time_request TIME WITH TIME ZONE NOT NULL
);

https://sqlize.online/sql/psql14/b17e764b2527c0fc3...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@galaxy
В вашем запросе вы потеряли закрывающую скобку.

Тип TIME WITH TIME ZONE существует, но он слегка странный, т.к. без даты (а этот тип только про время внутри суток - от 00:00 до 23:59) зона несколько бессмысленна.

Нужно хранить время (внутри суток) - TIME.
Дату без времени - DATE.
Временную метку - TIMESTAMP (with time zone / without time zone).
https://www.postgresql.org/docs/current/datatype-d...

Разница между with time zone / without time zone: TIMESTAMP WITH TIME ZONE хранится внутренне в UTC, при записи конвертируется из текущей временной зоны; TIMESTAMP WITHOUT TIME ZONE хранится как есть, без конвертаций.
Что использовать - зависит от приложения и вообще организации работы с БД. Для одного приложения (типа вебсайта) в принципе пофигу
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы