2012-01-31 10 views
6

Próbuję wpisać daty zarejestrowane w tabeli z SQL Server, ale moim problemem jest to, że wszystkie wyodrębniane daty różnią się o 2 dni datami w tabeli.Problem z wyodrębnianiem dat w SQL Server

Na przykład, mam 2012-12-25 w mojej bazy danych i kiedy je odzyskać i oddać go do java.util.Date, to przybierze 23.12.2012 ...

mam dostałem procesy w datach w innej tabeli, które działają poprawnie.

Używam SQL Server 2008, Hibernate 3 i sprężyna 3.

Edit:

Typ danych kolumny dla tabeli jest data, ja pobieranie go za pomocą hibernacji więc tutaj jest mój hibernacji zapytanie wywołanie:

public List<Holiday> retrieveAllHolidays() { 
    return (List<Holiday>) sessionFactory.getCurrentSession().createQuery("from Holiday") 
    .list(); 
} 

Obiekt wakacyjny ma dwa atrybuty: ciąg i datę (ten jest nieprawidłowy po pobraniu z bazy danych).

+1

Jaki jest typ danych kolumny w tabeli? Jak odzyskujesz datę? Czy możesz pokazać kod dla najmniejszego możliwego programu, który demonstruje problem? – Pondlife

+0

Zaktualizowałem mój wpis. – Tony

+0

spróbuj użyć obiektu kalendarza ... musisz zaktualizować swoje mapowanie za pomocą 'type = 'java.util.Calendar'' problem zazwyczaj występuje w java.util.Date Object .. Wcześniej miałem do czynienia z takimi problemami, a następnie zmieniono na 'Caneldar' –

Odpowiedz

4

Problem został powiązany z obsługą JRE 7 sterownika JDBC (problem z funkcją getDate()).

Zobacz ten post na więcej informacji: Microsoft JDBC driver team blog

Dzięki ponownie Martin Smith za wskazanie do tej drugiej kwestii!