Jump to content

datetime format


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

hallo ich habe auf meinem SQL 2005 eine tabelle angelegt, ID(int), Datum (datetime), wert1,...

 

von einem älteren programm bekomme ich jetzt das Datum in einen falschen format

 

2009-12-05 es sollte aber 2009-05-12 lauten.

 

kann ich das irgendwie einfach lösen, dass das datum richtig gestellt wird??

 

die möglich auf dem älteren Programm das datum umzustellen, habe ich leider nicht.

 

danke

Geschrieben

Moin,

 

wenn du das Programm, das die Daten liefert, nicht beeinflussen kannst, hast du da schlechte Karten. SQL Server interpretiert Datumsformate nach bestimmten Regeln. Kommt ein Datum wie angegeben im Format nnnn-nn-nn, so geht SQL Server vom ISO-Format aus und wertet die zweite Zahl als Monat und die dritte als Tag, sofern die Werte passen.

 

Wenn du die Datenübergabe über das Programm beeinflussen kannst, könntest du entweder die korrekte Reihenfolge vorgeben oder aber das Datum an eine Stored Procedure übergeben, die das macht. Beides erfordert aber Eingriff in den Code.

 

Ein Workaround wäre ein Trigger auf der Datenbanktabelle, der die Daten beim Einfügen umstellt. Das setzt aber wiederum voraus, dass alle Daten im selben Format ankommen, d.h. es darf nur die jetzige Anwendung schreiben oder alle anderen müssen sich auch an das "krumme" Format halten.

 

Gruß, Nils

PS. Bitte bemühe dich um lesbare Postings und nutze deine Shift-Taste konsequenter.

Geschrieben

Moin,

 

siehe Onlinehilfe unter "CREATE TRIGGER". Da ich weder die Datenbank noch die Applikation kenne, werde ich mich hier nicht mit Codebeispielen vorwagen. Entwickle und teste das gegen eine Testumgebung.

 

Gruß, Nils

Geschrieben

noch eine frage hätte ich, und zwar:

 

meine Tabelle sieht so aus:

 

ID, Datum, Wert1

1 2009-12-05 00:00:00.000, 100

 

ich möchte jetzt einen select machen der mir das datum umdreht, und zwar so:

 

1 2009-05-12 00:00:00.000, 100

 

die Spalte Datum ist als datime konfiguriert.

 

danke

Geschrieben

Sorry, aber da halt ich es dann wie Nils: Hast du schonmal in der Onlinehilfe geschaut, wie die jeweiligen Beispiele für substring und convert aussehen? Oder erwartest du, das wir dir nebenbei deine Arbeit auch noch erledigen?

 

Wir können dir zwar aufs Rad helfen, aber das treten musst du dann schon selber übernehmen, oder?

 

BTW: Ruf doch mal deinen Helpdesk an, deine Tastatur ist kaputt. Mindestens die Shift-Taste müsste mal auf Funktion geprüft werden.

Geschrieben

ich habe nun einen trigger generriert, der mir das Input Daum (2009-24-10) auf 2009-10-24 umwandelt.

 

jetzt habe ich aber das problem wenn ich das Datum 2009-6-10 konvertieren möchte kommt 2009--6- zurück da die 0 fehlt.

 

wie könnte ich das anders lösen??

mein select befehl sieht so aus:

 

select upper(

substring(datum,1,4) + substring(datum,5,1) +

substring(datum,9,2) + substring(datum,5,1) +

substring(datum,6,2)

from Table_1

Geschrieben

Moin,

 

naja, dann passt in deinem Fall eben das Zerlegen nach Zeichenpositionen nicht, sondern du musst den String an seinen Begrenzern (-) zerschneiden.

 

Warum du übrigens Ziffern in Großbuchstaben zu konvertieren versuchst, erschließt sich mir nicht ganz ...

 

Gruß, Nils

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...