Java / MySQL - проблема времени и даты - PullRequest
4 голосов
/ 21 июня 2010

!! ВАЖНО !!Решение найдено, вам нужно использовать sql.timestamp.Хотя есть 2 проблемы с отметкой времени.Прежде всего, если вы хотите поместить Date в Timestamp, вам нужно сделать: new Timestamp (date.getTime (). GetTime ());Какая-то странная ...

Также месяцы отметки времени начинаются с 0, поэтому январь равен 0. Это означает, что 23-02-2010 в отметке времени означает 23-01-2010.

Спасибо всем.

!! ВАЖНО !!

У меня вопрос по Java с MySQL.Я сделал стол под названием "Reserveringen".Эта таблица получила 5 столбцов, как показано ниже.2-й и 3-й столбцы являются типами datetime (сделаны в Dreamcoder для mysql).Но, как вы можете видеть, оба не показывают в любое время.Даже когда я получаю их из базы данных с помощью Java, он показывает, что время 23:00:00, если я прав.

  Id    vanaf       tot     klant_idmachine_id
    9   12/3/2010   1/14/2011   6   29
    8   1/3/2011    1/14/2011   6   27
    2   1/14/2011   6/20/2010   6   9
    3   1/14/2011   6/20/2010   6   11
    4   1/14/2011   6/20/2010   6   19
    5   1/14/2011   6/20/2010   6   21
    6   1/14/2011   6/20/2010   6   23
    7   1/14/2011   6/20/2010   6   25
    1   1/14/3911   1/14/3911   6   5

Таблица информации из mysql:

reserveringen  
Field  Null  Type  Key  Default  Extra  
Id _  NO _  int(10) _  PRI _  _  _  
vanaf _  YES _  datetime _  _  _  _  
tot _  YES _  datetime _  _  _  _  
klant_id _  YES _  int(10) _  MUL _  _  _  
machine_id _  YES _  int(10) _  MUL _  _  _  

Любойрешения?

Ответы [ 3 ]

3 голосов
/ 21 июня 2010

Используйте метку времени, тогда она будет хранить дату и время следующим образом 2010-06-21 13:28:17

java.util.Date today=new java.util.Date();
Timestamp currentTimestamp=new Timestamp(today.getTime());
PreparedStatement statement = dbConnection.prepareStatement("your query");
statement.setTimestamp(1, currentTimestamp);
1 голос
/ 21 июня 2010

Оба столбца 'vanaf' и 'tot' определены с использованием mysql 'datetime'.Этот тип данных действительно используется для хранения информации о дате и времени, и нет способа пропустить время.Пожалуйста, используйте инструмент командной строки vanilla mysql, чтобы проверить фактическое содержимое вашей таблицы.

Если вам нужны только даты, а не время: вы можете изменить схему базы данных, чтобы использовать столбцы «дата».(См. Типы DATETIME, DATE и TIMESTAMP

0 голосов
/ 21 июня 2010

java.sql.Date значения не имеют компонента времени http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Date.html (он хранит миллисекунды, но затем нормализует его до полуночи.)

Вместо этого используйте java.sql.Timestamp.Это должно решить вашу проблему.

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