Как преобразовать дату в формате эпохи в дату базы данных PostgreSQL (отметка времени без часового пояса) в классе реализации DAO или наоборот

Я ввожу данные в API Spring REST в виде формата эпохи в строке (например, «1478607386»). После этого я передал эти данные из контроллера в класс DAOImplementation, а затем я извлек данные столбца с отметкой времени типа данных без часового пояса из PostgreSQL в тот же класс DAO. Теперь мне нужно сравнить оба данных, т.е. данные формата эпохи в формате String (например, «1478607386») и данные базы данных из PostgreSQL, которые находятся в отметке времени без формата часового пояса (я могу хранить эти данные в форме переменной списка в DAOImplementation), независимо от того, имеют ли они ту же дату или нет .Может ли кто-нибудь помочь мне, как это сделать. Спасибо


person Sunil Kumar    schedule 08.11.2016    source источник


Ответы (1)


Вы можете извлечь эпоху в PostgreSQL и сравнить результат в Java.

Чтобы извлечь эпоху как bigint, вы можете действовать следующим образом:

SELECT CAST (extract(epoch FROM timestampcol) AS bigint) FROM mytable WHERE ...;

Кроме того, вы можете получить метку времени как java.sql.Date и используйте java.util.Calendar.getTimeInMillis() для извлечения эпохи в Java.

person Laurenz Albe    schedule 08.11.2016
comment
@Laorenz Albe Спасибо за ваш ответ. Я не могу обновить базу данных. Мне просто нужно преобразовать эпоху (метки времени String или unix) в метку времени базы данных без формата часового пояса в классе java, чтобы проверить, равны они или нет. Или по-другому вы можете использовать это как преобразование временной метки базы данных без часового пояса в строковую дату (аналогично формату даты эпохи) для сравнения в классе java. Надеюсь, ты понял мою проблему, друг :) - person Sunil Kumar; 08.11.2016
comment
Это все еще неясно. Пожалуйста, отредактируйте вопрос и опишите более подробно, что вы на самом деле хотите. Я понимаю, что вы хотите написать что-то на Java, поэтому использование этого тега может помочь. Объясните, что вы подразумеваете под временной меткой базы данных и приведите пример того, что будет делать желаемый код. - person Laurenz Albe; 08.11.2016
comment
Я конкретизирую проблему. Надеюсь, теперь понятно. - person Sunil Kumar; 08.11.2016
comment
Ваш запрос будет работать на уровне базы данных, но мне нужен такой результат в классе java DAOImplementation с использованием языка запросов Hibernate. - person Sunil Kumar; 10.11.2016
comment
Здравствуйте, Альбе, я хочу выбрать DATE (row_created) из некоторого запроса в язык запросов гибернации. Спасибо. - person Sunil Kumar; 10.11.2016