#postgresql #postgresql-9.2
Вопрос:
дата похожа на 2021-07-23
ожидаемый результат похож на этот 2021-07-24 00:00:00 08
, обратите внимание 08
?
Я пытался сделать это ниже, но я не получаю символ плюса
s_table.school_date INTERVAL '1 day'
есть идеи, как это сделать 08
?
Ответ №1:
Это время с включенным часовым поясом.
Попробуйте запустить следующее в Postgres, и оно вернет вам дату и время с часовым поясом, который находится после
или -
в зависимости от того, где вы находитесь.
SELECT NOW();
Правка-01:
попробуйте выполнить следующий код:
s_table.school_date::timestamptz INTERVAL '1 day'
Комментарии:
1. нет, я уже привел примеры данных, которые у меня есть. это всего лишь год , месяц, день. Я должен вывести его вместе с часами , минутами, секундами плюс знаком плюс и секундами ..пожалуйста, перечитайте описание в моем посте. Спасибо.
2. Я должен добавить интервал в 1 день, пожалуйста, смотрите пример выше
3. неважно. .Я решил ее следующим образом
(s_table.school_date INTERVAL '1 day')::timestamptz
4. @sasori, который тоже работает, или код, который я предоставил выше.
Ответ №2:
Я не смог это проверить, но вы пробовали указать эту дату в качестве метки времени?
Смотрите эту страницу из учебника по postgresql о различных типах меток времени.
Так что вы могли бы попробовать:
(s_table.school_date INTERVAL '1 day')::timestampz
чтобы преобразовать ваше текущее значение в метку времени с часовым поясом.
Если возвращенный часовой пояс неверен, вы можете использовать SET timezone='America/Los_Angeles'
или найти часовой пояс, который использует ваша текущая база данных с SHOW timezone;
Вы также можете просмотреть все часовые пояса для своей базы данных с SELECT * FROM pg_timezone_names;
помощью .
Я получил информацию о конкретном часовом поясе с этого ресурса.
Я бы обязательно сначала проверил настройку часового пояса в транзакции, поскольку я обеспокоен тем, что это установит часовой пояс для всей вашей базы данных, и это может повлиять на другие процедуры / запросы, происходящие в вашей базе данных.
Я надеюсь, что это поможет! Извините, что я не смог сначала опробовать его, прежде чем отправлять эту информацию.
правка: похоже, я был немного медлителен! Рад, что ты это понял 🙂