Имеет ли смысл SQL тип TIME WITH TIMEZONE? - PullRequest
3 голосов
/ 02 марта 2020

При отображении некоторых столбцов базы данных в Java классы я наткнулся на этот неясный SQL -92 Стандартный тип (реализованный PostgreSQL, H2 и Hyper SQL afaik) , Я никогда не использовал его, но я хотел понять, насколько четко сопоставить его с типом Java, если когда-нибудь найду его.

Вот варианты, которые я вижу:

  • Случай A : тип TIME, например 15:20:01. Это "местное время". Часовой пояс очевиден для приложения, поэтому база данных не записывает его.

  • Случай B : TIME со смещением, как в 15:20:01+04:00 , Он представляет собой «мировое время». Это время можно преобразовать тривиально в UT C или в любое другое мировое время.

  • Дело C: A TIME с часовым поясом например 15:20:01 EDT. Так как правила интерпретации времени сильно зависят от конкретной даты c, я не могу понять ее без даты; но затем, если я добавлю дату, она станет TIMESTAMP, и это будет что-то совершенно другое.

Итак, SQL Standard понял это неправильно? Или, может быть, «ВРЕМЯ с часовым поясом» всегда следует интерпретировать как «время со смещением» (случай B)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...