Supportnet / Forum / Datenbanken
Zeitformat ändern
Frage
Ich habe eine Alcatel Programm welche eine Statistik aller Anrufe pro Tag in eine Excel Tabelle generiert.
Ausserdem hab ich eine DB im Access (2003) welche diese Daten in eine Tabelle übernimmt...Nun hab ich in einer Spalte eine Zeitangabe welche jedoch als Text definiert ist...(kann schlicht und weg nicht geändert werden, weder im Alcatelprogramm noch im Excel) ...diese Zeitangabe wird durch dieses Alcatelprogramm generiert.
Nun, hab ich in meiner Tabelle eine Spalte Time die so aufgebaut ist:
7:00-7:30
7:30-8:00
8:00-8:30
8:30-9:00
9:00-9:30
9:30-10:00
etc. bis 20.00
Um jedoch mit diesen Daten arbeiten zu können muss entweder eine NULL vor 7:00-7:30 (also 07:00-07:30) . Zu beachten wäre einfach das z.B bei 17.00 nicht auch ein Null hinzugefügt wird.
ausserdem wäre glaub ich von Vorteil wenn diese beiden Zeiten in zwei Spalten angezeigt würden ( also Time1 : 07:00 und Time2 07:30 )
Danke für jeden Input
Antwort 1 von Maiko
Die Frage betrifft übrigens Access2003
Antwort 2 von oliverV
Hallo Maiko,
verwende in einer Abfrage:
bzw.
Wenn es nicht unbedingt nötig ist, würde ich dieses Werte nicht in einer Tabelle speichern, denn du kannst sie ja jederzeit zur Laufzeit berechenen.
Gruß
Oliver
verwende in einer Abfrage:
Time1: Wenn(Länge([Zeitfeld])<11;"0" & Links([Zeitfeld];4);Links([Zeitfeld];5))
bzw.
Time2: Wenn(Länge([Zeitfeld])=9;"0" & Rechts([Zeitfeld];4);Rechts([Zeitfeld];5))
Wenn es nicht unbedingt nötig ist, würde ich dieses Werte nicht in einer Tabelle speichern, denn du kannst sie ja jederzeit zur Laufzeit berechenen.
Gruß
Oliver
Antwort 3 von Maiko
Irgendwie haut das nicht hin , Syntax Error in Form Clausel
SELECT Time FROM Alcatel Time1: Wenn(Länge(Time)<11;"0" & Links([Zeitfeld];4);Links(Time;5)) ;
Time ist mein Feld , Alcatel mein Tabellenname
SELECT Time FROM Alcatel Time1: Wenn(Länge(Time)<11;"0" & Links([Zeitfeld];4);Links(Time;5)) ;
Time ist mein Feld , Alcatel mein Tabellenname
Antwort 4 von oliverV
Als SQL-Statement müsste es lauten:
Allerdings könnte es sein, das [time] ein reserviertes Wort ist, evtl. musst du diesen Feldnamen ändern.
Gruß
Oliver
SELECT Alcatel.Time, IIf(Len([Time])<11,"0" & Left([Time],4),Left([Time],5)) AS Time1
FROM Alcatel;
Allerdings könnte es sein, das [time] ein reserviertes Wort ist, evtl. musst du diesen Feldnamen ändern.
Gruß
Oliver
Antwort 5 von Maiko
Ok ich werds mal versuchen ! meld mich dann wieder . dank dir !
Antwort 6 von Maiko
dass will nicht so wie ich will....
hab jedoch gemerkt dass ich diese Trennung gar nicht benötige mit Time1 und Time2...danke trotzdem..!
ist in dieser Abfrage auch das "Null setzen" vor 7:00-7:15 drin oder ist das was anderes . brauch nur noch das...
hab jedoch gemerkt dass ich diese Trennung gar nicht benötige mit Time1 und Time2...danke trotzdem..!
ist in dieser Abfrage auch das "Null setzen" vor 7:00-7:15 drin oder ist das was anderes . brauch nur noch das...
Antwort 7 von oliverV
Hi Maiko,
macht es für mich nicht besonders einfach dir weiterzuhelfen, da kann ich nur planlos im Dunkeln herumstochern, bisschen mehr Feedback brauche ich schon.
Wenn du alles wieder in einem Feld haben willst, nur halt mit der "0" aufgefüllt, dann kannst du die Felder [Time1] und [Time2] in einem dritten Feld ja auch wieder zusammenfügen, dazwischen setzt du dann noch dein "-".
Das SQL-Statement dafür sollte folgendermaßen aussehen:
Nochmal der Hinweis, auf das (wahrscheinlich) reservierte Wort [Time], den Feldnamen solltest du IMHO anpassen.
Wenn´s immer noch Probleme gibt, bitte etwas mehr substanzielles Feedback, sonst macht´s mir nämlich auch keinen Spaß...
Viel Erfolg
Oliver
Zitat:
dass will nicht so wie ich will....
dass will nicht so wie ich will....
macht es für mich nicht besonders einfach dir weiterzuhelfen, da kann ich nur planlos im Dunkeln herumstochern, bisschen mehr Feedback brauche ich schon.
Wenn du alles wieder in einem Feld haben willst, nur halt mit der "0" aufgefüllt, dann kannst du die Felder [Time1] und [Time2] in einem dritten Feld ja auch wieder zusammenfügen, dazwischen setzt du dann noch dein "-".
Das SQL-Statement dafür sollte folgendermaßen aussehen:
SELECT Alcatel. Time, IIf(Len([Time])<11,"0" & Left([Time],4),Left([Time],5)) AS Time1, IIf(Len([Time])=9,"0" & Right([Time],4),Right([Time],5)) AS Time2, [Time1] & "-" & [Time2] AS Time3
FROM Alcatel;
Nochmal der Hinweis, auf das (wahrscheinlich) reservierte Wort [Time], den Feldnamen solltest du IMHO anpassen.
Wenn´s immer noch Probleme gibt, bitte etwas mehr substanzielles Feedback, sonst macht´s mir nämlich auch keinen Spaß...
Viel Erfolg
Oliver
Antwort 8 von Maiko
Booooaa Eyyyyyy!! du bist echt ein Genie !!
Hat voll funktioniert !!
Na ..das gibt wieder Hoffnung!
also dank dir !
Hat voll funktioniert !!
Na ..das gibt wieder Hoffnung!
also dank dir !