# MS SQL: 2 Tage Zeitverschiebung bei Datum



## javabar (27. Jun 2012)

Hallo! Ich hänge seit Stunden an einem Problem und komm hier nicht weiter:

In einem Client wie HeidiSQL führe ich eine SQL-Abfrage durch:


```
SELECT DISTINCT gutschriftsdatum FROM table WHERE gutschriftsdatum >= '2012-06-01' AND gutschriftsdatum <= '2012-06-27' GROUP BY gutschriftsdatum ORDER BY gutschriftsdatum
```

Ausgabe:


```
2012-06-01
2012-06-02
2012-06-05
2012-06-06
2012-06-07
2012-06-12
2012-06-13
2012-06-14
2012-06-15
2012-06-16
2012-06-19
2012-06-20
2012-06-21
2012-06-22
2012-06-23
2012-06-26
2012-06-27
```

In Java ausgeführt jedoch ergeben sich 2 Tage Differenz !????? :


```
PreparedStatement st = connection.prepareStatement("SELECT DISTINCT gutschriftsdatum FROM table WHERE gutschriftsdatum >= '2012-06-01' AND gutschriftsdatum <= '2012-06-27' GROUP BY gutschriftsdatum ORDER BY gutschriftsdatum");
ResultSet rs = st.executeQuery();
while (rs.next()) {
    System.out.println(rs.getDate(1));
}
```

gibt aus:


```
2012-05-30
2012-05-31
2012-06-03
2012-06-04
2012-06-05
2012-06-10
2012-06-11
2012-06-12
2012-06-13
2012-06-14
2012-06-17
2012-06-18
2012-06-19
2012-06-20
2012-06-21
2012-06-24
2012-06-25
```

Wie kann es zu diesen 2 Tagen Differenz kommen? Dass es sich um ein Zeitzonen-Problem handelt, kann ich mir kaum vorstellen.

:bahnhof: ???:L

Viele Grüße und danke für jede Hilfe

Egon Schmid


----------



## SlaterB (28. Jun 2012)

[SOLVED] Java acting weird with dates - Ubuntu Forums

(wenn auch nur mit schaler Lösung, dass Treiber nicht mit Java 7 klarkommen soll)


----------



## bronks (28. Jun 2012)

Hast Du schon mal  yyyyMMdd als Format probiert?


----------



## javabar (29. Jun 2012)

Ich habe das Problem gelöst, indem ich einen aktuelleren JDBC-Treiber von Microsoft runter geladen habe.

Jetzt stimmt die Ausgabe wieder.

Viele Grüße

Egon Schmid


----------

