mowch 10 Geschrieben 22. Juni 2009 Melden Teilen Geschrieben 22. Juni 2009 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 22. Juni 2009 Melden Teilen Geschrieben 22. Juni 2009 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. Zitieren Link zu diesem Kommentar
mowch 10 Geschrieben 23. Juni 2009 Autor Melden Teilen Geschrieben 23. Juni 2009 wie könnte so ein trigger aussehen?? Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 23. Juni 2009 Melden Teilen Geschrieben 23. Juni 2009 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 Zitieren Link zu diesem Kommentar
mowch 10 Geschrieben 23. Juni 2009 Autor Melden Teilen Geschrieben 23. Juni 2009 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 Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 23. Juni 2009 Melden Teilen Geschrieben 23. Juni 2009 Ist doch recht simpel: - konvertieren in varchar - per substring zerlegen und neu zusammensetzen - fertig Oder? Zitieren Link zu diesem Kommentar
mowch 10 Geschrieben 23. Juni 2009 Autor Melden Teilen Geschrieben 23. Juni 2009 Ist doch recht simpel:- konvertieren in varchar - per substring zerlegen und neu zusammensetzen - fertig Oder? und wie tät das dann aussehen?? für dummis Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 23. Juni 2009 Melden Teilen Geschrieben 23. Juni 2009 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. Zitieren Link zu diesem Kommentar
Dr.Verpeilung 10 Geschrieben 23. Juni 2009 Melden Teilen Geschrieben 23. Juni 2009 Welche Sprache hast du denn eigentlich eingestellt? Wir hatten mal eine Anwendung die es erforderte, dass diese auf "Englisch" steht. Erst dann klappte es mit dem Datum. Vorher wollte er immer den 12.13.2008 speichern anstatt den 13.12.2008. Zitieren Link zu diesem Kommentar
mowch 10 Geschrieben 24. Juni 2009 Autor Melden Teilen Geschrieben 24. Juni 2009 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 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 Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Für die Lokalisation des '-' würde sich z.B. die T-SQL CHARINDEX Funktion anbieten CHARINDEX (Transact-SQL) Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Oder eine der unzähligen, im Internet zu findenden SPLIT-Implementierungen für T-SQL... Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.