При отображении некоторых столбцов базы данных в 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)?