Как избежать "Z" в моей дате и времени в PostgreSQL - PullRequest
1 голос
/ 12 июня 2019

Я использую интерфейс материалов для выбора даты и сохранения ее в базе данных SQL.Когда я отправляю дату в БД, она указывается в следующем формате: «ГГГГ-ММ-ДДТЧ: ММ», например, «2017-05-24T10: 30».Однако, когда я выбираю даты из БД, они выглядят так: «ГГГГ-ММ-ДДТЧ: ММ: СС.000Z», например «2019-06-14T10: 30: 00.000Z»

Теперь яиспользуя пакет календаря под названием FullCalendar, который интерпретирует "Z" как -5H.Таким образом, все даты в моем календаре перенесены на 5 часов.По-настоящему, базарная вещь в том, что это происходит только тогда, когда приложение развернуто на Heroku.Если я запускаю приложение локально и пытаюсь выбрать даты, база данных автоматически добавляет 5H к временам, чтобы компенсировать «Z», и даты правильно отображаются в календаре.

Я ищу решение, чтобы либо избавиться от "Z", либо обеспечить согласованность развертываний heroku и локальных приложений.

Я не уверен, существует ли какой-либо соответствующий код длявключи сюда.Методы POST и GET для БД довольно стандартны.Дайте мне знать, могу ли я добавить что-нибудь полезное.

1 Ответ

0 голосов
/ 12 июня 2019

Без дополнительной информации это будет простое решение (не самое лучшее):

SELECT LEFT(cast('2019-06-14T10:30:00.000Z' AS varchar),16)

Результат: "2019-06-14T10: 30"

Посмотрите на эти функции длялучшие ответы с точки зрения производительности: AT TIME ZONE, date_trunc

https://www.postgresql.org/docs/9.1/functions-datetime.html

...