SQL Formel Datum filtern

Hallo,

wir exportieren Daten aus der UPS Worlship Software um diese in unser Rechnungsprogramm zu importieren und stoßen auf folgendes Problem:

das Datum wird als 14-stellige Zahl exportiert. Jahr, Monat, Tag und der Rest ist vermutlich Uhrzeit also zB 20080201155316 sieht für mich aus, wie wenn Std, Min und Sek mit dabei sind. Welche Formel kann ich verwenden um die ersten 8 Zahlen als Datum zu verwenden?

Vielen Dank im vorraus.

Patrick

Welche Formel kann ich verwenden um die ersten 8 Zahlen als
Datum zu verwenden?

Hallo Patrick,

versuch es mal so:

select substr(DATUM,1,8) from …

wobei DATUM der Feldname Deines Datumfeldes ist.

Gruß
Grisu

versuch es mal so:

select substr(DATUM,1,8) from …

wobei DATUM der Feldname Deines Datumfeldes ist.

Da ich überhaupt keine Ahnung von solchen Formeln habe, habe ich das mal 1:1 übernommen. Leider klappt es nicht. Kommt eingabe ungültig. Habe mal ein Image hochgeladen.

Die Zuordnung der Felder geschieht ja extra.

[URL=[http://img503.imageshack.us/my.php?image=formelrechn…](http://img503.imageshack.us/my.php?image=formelrechnungsprogej4.jpg][IMG]http://img503.imageshack.us/img503/8728/formelrechnungsprogej4.th.jpg[/IMG][/URL)]

Finde keine EDIT funktion. Der Link war falsch. Dieser ist es:
URL=[http://imageshack.us][IMG]http://img503.imageshack.u…]
[URL=[http://g.imageshack.us/g.php?h=503&i=formelrechnungs…](http://g.imageshack.us/g.php?h=503&i=formelrechnungsprogej4.jpg][IMG]http://img503.imageshack.us/img503/8728/formelrechnungsprogej4.3f6d9a5f4c.jpg[/IMG][/URL)]

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

http://img503.imageshack.us/img503/8728/formelrechnu…

http://img503.imageshack.us/img503/8728/formelrechnu…

Ähm, Patrick, Du verwendest kein SQL sondern einen Datenimporter, der mit Sicherheit nur die SQL-Funktion (also ohne SELECT) benötigt. Allerdings solltest Du wissen, im welchem Format das Feld, das Du beladen willst, das Datum haben willst: MySQL würde z.B. yyyy-mm-dd haben Access #ddmmyyyy# (oder so ähnlich). Genauers sagt Dir bestimmt das Handbuch des Tools.

MfG Georg V.

So bin nu wieder in der Arbeit.

Die angezeigte Datenbank hat ein SQL Zeichen und in der Info steht:
Adaptive Server Anywhere Network Server

Kannst du bitte einen Lösungsvorschlag als ganze Formel posten da ich davon keie Ahnung habe?

Wäre alles halb so wild, wenn wir nicht am Montag die ersten Rechnungen damit rauslassen müssten und der Programierer der Software sich nach einrichten weiter drum gekümmert hätte. Nun stehe ich als total Planlos in Sachen SQL und Datenbanken allgemein dar.

Danke

Hallo Patrick,

laut Google verlangt Sybase Anywhere das Datum als yyyy-mm-dd oder (je nach Datentyp) geklammert mit date(‚yyyy-mm-dd‘).
(siehe URL http://manuals.sybase.com/onlinebooks/group-iq/iqg12… )
Details müssten eigentlich dazu im Handbuch der Software stehen, die der Programmier bestimmt nicht kostenlos erstellt hat. Da ich weder die Datenbank noch die Software installiert habe oder kenne, kann ich Dir kaum weiterhelfen. Dies könnte nur ein entsprechender Vorort-Support.

MfG Georg V.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Leider kümmert sich dieser aber erst nach 20 mal anrufen und 3 Wochen später um was,daher hoffe ich das wir das trotzdem hinbekommen.

Wenn ich die Formel also substr(1,8) nehme, heißt es doch nur 1-8 oder nicht? Bei dieser Formel kommt zwar keine Fehlermeldung allerdings ist das Ergebnis leer. Nichtmal null.

Da das Datumsformat ja so gefordert wird, wie es auch die 14-stellige Zahl in der Reihenfolge beinhaltet, muss man doch nur sagen „nur 1-8“ oder nicht? Das Feld muss ich ja nichtmal angeben, da die Zuordnung der Felder schon vorher geschehen ist. Kann man im hochgeladenen Bild sehen, wo Feld 5 steht. Gibt es da keine „einfache“ Formel um zu sagen, dass er nur die ersten 8 Zahlen berücksichtigen soll?

Ich glaube ich bin nah dran.

http://img120.imageshack.us/my.php?image=image1dl5.jpg

erkennst du nen Fehler?

Ich glaube ich bin nah dran.

http://img120.imageshack.us/my.php?image=image1dl5.jpg

erkennst du nen Fehler?

Hallo Patrick,

Du hängst mich vollständig ab: Selbst in Perl ist die Reihenfolge der Argumente von substr(ing) nicht (start, länge, string) sondern (string, start, länge). Ausserdem würde ich, wenn ich vor dem Rechner sitzen würde, erstmal mir Schritt 1 und Schritt 2 für das Feld 5 ansehen. Welchen Datentyp hat das Zielfeld Abholdatum? Wenn es Integer sein muss, müsste das Ergebnis ja eher 1022008 sein. Also soetwas wie

 substr(wert,7,2)||substr(wert,5,2)||substr(wert,1,4)

Trotzdem frage ich mich, ob es nicht besser wäre -wegen der Dringlichkeit des Problems- die Uhrzeit aus der Originaldatei zu löschen. Mit Perl oder jeder anderen Programmiersprache bzw. -tool (und in diesem Fall zähle ich auch Excel dazu) wäre dies möglich: Dafür müsste aber klar sein, wie das Datum in diesem Fall auszusehen hat. Und ein Bitte teste dies nicht mit dem Datum 01.02.2008 sondern mehr mit dem 13.01.2008, denn es gibt auch Schreibweisen mm-dd-yyyy.

MfG Georg V.