Я использую следующую инструкцию для получения метки времени из моей базы данных SQL:
stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()))
Который отлично работает и возвращает:
2013-02-22 12:27:34.0
Теперь бывает, что мне нужно поточнее, вот так:
2013-02-22 12:27:34.000
Итак, я нашел в документах следующий метод, который, по-видимому, именно то, что я хочу:
setNanos (целое число)
Устанавливает поле nanos этого объекта Timestamp в заданное значение.
Но мне нужно выяснить, как включить это в мое подготовленное заявление?
я пробовал например
stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()).setNanos(3));
но чем это возвращает следующую ошибку:
The method setTimestamp(int, Timestamp) in the type PreparedStatement is not applicable for the arguments (int, void)
Большое спасибо за твою помощь!
.0
- это просто то, что используется, когда доля миллисекунды равна 0. Также имейте в виду, чтоgetTime
имеет точность только в миллисекундах. Часть nanos является отдельной. Пожалуйста, опишите более конкретный вариант использования. Кстати: действительно ли SQL Server может хранить временные метки с точностью до наносекунды? - person Mark Rotteveel   schedule 11.11.2016