какой объект времени Java следует использовать для сравнения MySQL столбец datetime? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть таблица, подобная следующей

CREATE TABLE `MY_TABLE` (
  `CODE` varchar(50) NOT NULL,
  `ADDRESS`  varchar(50) NOT NULL,
  `LAST_MODIFIED_IN_UTC` datetime NOT NULL,
  PRIMARY KEY (`CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Вот пример вставки, который я делаю

INSERT INTO MY_TABLE
(`CODE`,
`ADDRESS`,
`LAST_MODIFIED_IN_UTC`)
VALUES
('PR123',
'dummy address',
UTC_TIMESTAMP(6)
);

Я использую встроенную функцию mysql UTC_TIMESTAMP (6).

Теперь в моем Java-коде я выполняю следующее в jdbcTemplate

String sql = "SELECT CODE FROM MY_TABLE WHERE LAST_MODIFIED_IN_UTC > ?";

LocalDateTime filterTime = LocalDateTime.now(Clock.systemUTC())
                    .minusMinutes(120);

how do I pass the localDateTime to jdbcTemplate for query.

примерно так:

 jdbcTemplate.queryForList(sql, new Object[]{filterTime}, String.class);

какой объект времени Java следует использовать здесь?

1 Ответ

0 голосов
/ 23 мая 2018

MySQL сам рекомендует java.sql.Timestamp для сопоставления с типом данных DATETIME.

Ссылка

Но часто люди используют java.util.Date для сопоставления.

...