# Datum's String in MSSQL oder MySQL  wie konvertieren ?



## miketronik (22. Jul 2006)

Hallo,

ich habe in einer MySQL Datenbank in einem vchar Feld ein Datum in diesem Format: 03.07.2006, 10:37:04 das muss ich irgendwie in ein sinnvolles Datumsformat umwandeln mit dem man dann zeitvergleichen und suchen kann. Hauptziel ist eine MS SQL Tabelle. Es sollte aber auch auf MySQL laufen. Jetzt habe ich gesehen in MySQL sieht Timestamp etwa so aus 0000-00-00, 00:00:00 - in MS SQL ist es eine Hexzahl. Dann gibt es noch DATETIME und DATE und TIME, was ist da zu empfehlen und welch Klassen benötige ich zu umwandeln?

Ich habe also zwei Probleme zum einem das umwandeln aus der jetzigen Tabelle und dann ein sinnvolles Format für die Zukunft welches MySQL und MSSQL unterstützt?

Über ein bis zwei Beispiele währe ich hoch erfreut. Was ich bis jetzt so aus den Büchern heraus gelesen habe ziehlt immer auf das rechnen mit Datumsangaben hinn (wann ist Ostersonntag und wann Männertag) aber so Konvertierungen habe ich wenig gefunden, bzw. umständlich von String in int über tag, monat, jahr alles einzeln usw...

Danke Mike


----------



## André Uhres (23. Jul 2006)

```
//package schnipsel4; 
/* 
* DateConversion.java 
*/ 
import java.text.*; 
import java.util.Date; 
public class DateConversion { 
    private SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy, hh:mm:ss"); 
    private String dateString = "03.07.2006, 10:37:04"; 
    private Date date1, date2; 
    private String dateS1, dateS2; 
    public DateConversion() { 
        try { 
            date1 = df.parse(dateString); 
        } catch (ParseException ex) {ex.printStackTrace();} 
        date2 = new Date(); 
        dateS1 = df.format(date1); 
        dateS2 = df.format(date2); 
        String op = date1.compareTo(date2) < 0 ? " < " : " >= ";
        System.out.println(dateS1 + op + dateS2); 
    } 
    public static void main(String[] args){new DateConversion();} 
}
```


----------



## miketronik (23. Jul 2006)

Danke für das Beispiel,

aber dass ist nich dass was ich meine. Ich brauche das Datum und die Zeit im SQL Format. Wenn ich jetz aus dem Beispiel das date1 z.b. caste nach java.sql.Date wirft der Datenbanktreiber eine Exception. Überhaupt habe ich heute mal versucht aus verschiedennen Büchern was raus zu lesen aber das scheint ein allgemeines Problem zu sein. In MySql lassen die meisten das Datum (Timestamp) mit now() die Datenbank erstellen. In den Büchern stehen als Beispiele immer nur die getXXX Methoden. Selbst hier im Forum werden Datumsangaben in MySQL als long gespeichert und nicht als Date oder Time. Entweder ist es zu einfach und ich raff's nicht oder es geht wirklich nicht.

Mike


----------



## DP (25. Jul 2006)

mal zu mysql:

date = YYYY-MM-DD
time = HH:MM:SS
datetime = YYYY-MM-DD HH:MM:SS

viele speichern die angaben als long, da der vergleich/suche von date/time/datetime-feldern analog zu strings relativ langsam ist.


----------

