- Beiträge: 7
DateTime aus Datum und Uhrzeit bilden
- Marcus Franke
- Autor
- Offline
- Benutzer
Weniger
Mehr
3 Jahre 7 Monate her #4302
von Marcus Franke
DateTime aus Datum und Uhrzeit bilden - Beitrag(4302) wurde erstellt von Marcus Franke
Schönen guten Tag,
ich habe folgende Herausforderung vor der ich stehe.
In der Read Datenbank habe ich ein Datumsfeld (yyyyMMdd) und ein Uhrzeitfeld (HH:MM).
Leider hat die Zieldatenbank ein Feld mit dem Typ DateTime (dd.MM.yyyy HH:MM:SS).
Wie kann ich nun das Datum und die Uhrzeit in das DateTime Feld schreiben?
Bis jetzt habe ich es nur geschafft ohne die Uhrzeit das Datum in das Feld DateTime zu schreiben.
Vilen Dank schon mal vorab
ich habe folgende Herausforderung vor der ich stehe.
In der Read Datenbank habe ich ein Datumsfeld (yyyyMMdd) und ein Uhrzeitfeld (HH:MM).
Leider hat die Zieldatenbank ein Feld mit dem Typ DateTime (dd.MM.yyyy HH:MM:SS).
Wie kann ich nun das Datum und die Uhrzeit in das DateTime Feld schreiben?
Bis jetzt habe ich es nur geschafft ohne die Uhrzeit das Datum in das Feld DateTime zu schreiben.
Vilen Dank schon mal vorab
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 7 Monate her #4303
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf DateTime aus Datum und Uhrzeit bilden - Beitrag(4303)
Hallo Herr Franke,
wenn das Feld in der ODBC Datenbank vom Typ Datum bzw. Date ist können Sie den nächsten Absatz überspringen.
Ich vermute aber mal das Feld in Ihrer ODBC Datenbank als Typ String (CHAR, VARCHAR NCHAR, NVARCHAR,…) hinterlegt ist? In dem Fall müssen Sie auf der READ Seite den FlowHeater Datentyp nach dem einlesen der Schemainformationen manuell auf "Date" umstellen. Zusätzlich müssen Sie auf dem Reiter „Format“ das Datumsformat auf „yyyyMMdd“ umstellen, siehe Screenshot.
Wenn das gemacht wurde können Sie nun einen Wert mit Datum und Uhrzeit über den String Append Heater bilden. Verbinden Sie nacheinander das Datums und Uhrzeit Feld mit dem String Append Heater und geben als Trennzeichen ein Leerzeichen an. Den so generierten Feldinhalt können Sie direkt auf das DateTime Feld der WRITE Seite ziehen. Das Datum wird automatisch in das von der Datenbank benötigte Format umgewandelt.
Um Anhang finden Sie ein kleines Beispiel dazu. Hier wird auf der READ und WRITE Seite zwar der TextFile Adapter verwendete. Die automatische Typumwandlung funktioniert aber auch mit dem ODBC Adapter .
wenn das Feld in der ODBC Datenbank vom Typ Datum bzw. Date ist können Sie den nächsten Absatz überspringen.
Ich vermute aber mal das Feld in Ihrer ODBC Datenbank als Typ String (CHAR, VARCHAR NCHAR, NVARCHAR,…) hinterlegt ist? In dem Fall müssen Sie auf der READ Seite den FlowHeater Datentyp nach dem einlesen der Schemainformationen manuell auf "Date" umstellen. Zusätzlich müssen Sie auf dem Reiter „Format“ das Datumsformat auf „yyyyMMdd“ umstellen, siehe Screenshot.
Wenn das gemacht wurde können Sie nun einen Wert mit Datum und Uhrzeit über den String Append Heater bilden. Verbinden Sie nacheinander das Datums und Uhrzeit Feld mit dem String Append Heater und geben als Trennzeichen ein Leerzeichen an. Den so generierten Feldinhalt können Sie direkt auf das DateTime Feld der WRITE Seite ziehen. Das Datum wird automatisch in das von der Datenbank benötigte Format umgewandelt.
Um Anhang finden Sie ein kleines Beispiel dazu. Hier wird auf der READ und WRITE Seite zwar der TextFile Adapter verwendete. Die automatische Typumwandlung funktioniert aber auch mit dem ODBC Adapter .
gruß
Robert Stark
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Marcus Franke
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 7
3 Jahre 7 Monate her #4304
von Marcus Franke
Marcus Franke antwortete auf DateTime aus Datum und Uhrzeit bilden - Beitrag(4304)
Vielen Dank für den Denkanstoß
.
Mit Textdateien hat es geklappt aber leider nicht in der Datenbank selbst.
Ihre Hilfe hat mich dennoch zur Lösung gebracht (Dafür vielen Dank).
Das Datum wird bei einer Textdatei richtig in das Format dd.MM.yyyy umgewandelt aber nicht bei der Datenbank,
hier musste ich noch einmal das Format zusätzlich als Datum angeben mit Formatswechsel.
Die Uhrzeit war leider auch keine richtige Uhrzeit auf der Read Seite sondern ein Intengerwert den ich erst in eine Uhrzeit zurechtschneiden musste (siehe Anhang).
Vielen Dank nochmal
Mit Textdateien hat es geklappt aber leider nicht in der Datenbank selbst.
Ihre Hilfe hat mich dennoch zur Lösung gebracht (Dafür vielen Dank).
Das Datum wird bei einer Textdatei richtig in das Format dd.MM.yyyy umgewandelt aber nicht bei der Datenbank,
hier musste ich noch einmal das Format zusätzlich als Datum angeben mit Formatswechsel.
Die Uhrzeit war leider auch keine richtige Uhrzeit auf der Read Seite sondern ein Intengerwert den ich erst in eine Uhrzeit zurechtschneiden musste (siehe Anhang).
Vielen Dank nochmal
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Marcus Franke
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 7
3 Jahre 7 Monate her #4305
von Marcus Franke
Marcus Franke antwortete auf DateTime aus Datum und Uhrzeit bilden - Beitrag(4305)
So jetzt nochmal mit Anhang
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 7 Monate her #4308
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf DateTime aus Datum und Uhrzeit bilden - Beitrag(4308)
Hallo Herr Franke,
Sie machen aus meiner Sicht zu viele Umwandlungen manuell. Wichtig ist welche Datentypen vom FlowHeater initial ausgelesen wurden. So sind die Felder in der Datenbank angelegt und kommen so auch im FlowHeater richtig an. Ein Datum (DATE / DATETIME / …) kann beliebig formatiert werden der Wert ändert sich nicht!
z.B. 20210428 = 28.04.2021 = 4/28/2021
Wenn das Feld Anlagedatum vom Datentyp DATE bzw. DATETIME ist dann müssen Sie hier nichts weiter mit dem Format Heater umwandeln, es genügt, wenn Sie auf der WRITE Seite das Format so einstellen wie es allgemein benötigt wird bzw. wie Sie es formatiert ausgeben möchten.
Wenn das Feld „Anlageuhrzeit“ vom Datentyp INTEGER ist haben Sie es richtiggemacht. Je nachdem wie das allgemeine Format auf der WRITE Seite eingestellt ist müssen Sie mit den Tausendertrennzeichen aufpassen.
Siehe meine Anmerkungen im Screenshot.
Sie machen aus meiner Sicht zu viele Umwandlungen manuell. Wichtig ist welche Datentypen vom FlowHeater initial ausgelesen wurden. So sind die Felder in der Datenbank angelegt und kommen so auch im FlowHeater richtig an. Ein Datum (DATE / DATETIME / …) kann beliebig formatiert werden der Wert ändert sich nicht!
z.B. 20210428 = 28.04.2021 = 4/28/2021
Wenn das Feld Anlagedatum vom Datentyp DATE bzw. DATETIME ist dann müssen Sie hier nichts weiter mit dem Format Heater umwandeln, es genügt, wenn Sie auf der WRITE Seite das Format so einstellen wie es allgemein benötigt wird bzw. wie Sie es formatiert ausgeben möchten.
Wenn das Feld „Anlageuhrzeit“ vom Datentyp INTEGER ist haben Sie es richtiggemacht. Je nachdem wie das allgemeine Format auf der WRITE Seite eingestellt ist müssen Sie mit den Tausendertrennzeichen aufpassen.
Siehe meine Anmerkungen im Screenshot.
gruß
Robert Stark
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Marcus Franke
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 7
3 Jahre 7 Monate her #4309
von Marcus Franke
Marcus Franke antwortete auf DateTime aus Datum und Uhrzeit bilden - Beitrag(4309)
Wo kann ich sehen welche Datentypen vom FlowHeater initial ausgelesen wurden?
In den Einstellungen auf der Read und Write Seite stehen bei allen Feldern immer der Datentyp "String".
Ich habe dann in der Datenbank selbst nachgesehen und den Datentyp dann in FlowHeater auf der read und write Seite manuell festgelegt (bei Datums und Uhrzeitfeldern).
Das Trennzeichen bei Zahlen (Tausender Punkt) habe ich bereits entfernt.
.
Das Anlegedatum ist laut Datenbank ein reines Datumsfeld ohne Uhrzeit.
Ohne die Typ Umwandlung vom "Anlegedatum" kommt bei meiner Zieldatenbank das Format yyyyMMdd HH:mm:ss an und der Import wird dann abgebrochen mit einer Fehlermeldung.
Die Typumwandlung bei der Uhrzeit habe ich entfernt, der Import funktioniert wie sie gesagt haben auch ohne diese Typumwandlung.
Da ohne Typumwandlung der Uhrzeit und ohne Angabe "DateTime" als Format beim Ausgabefeld nun der Import nicht mehr Funktioniert (Alle Uhrzeiten kleiner 10 Uhr werden ohne anführende Null versucht in die Zieldatenbank zu schreiben / Ist Ausgabe "H:mm:ss" Soll Ausgabe "HH:mm:ss").
Daher habe ich die Typangabe "DateTime" beim Ausgabefeld gelassen (jetzt wird automatisch eine "0" wieder vor Uhrzeiten kleiner 10Uhr angehangen).
In den Einstellungen auf der Read und Write Seite stehen bei allen Feldern immer der Datentyp "String".
Ich habe dann in der Datenbank selbst nachgesehen und den Datentyp dann in FlowHeater auf der read und write Seite manuell festgelegt (bei Datums und Uhrzeitfeldern).
Das Trennzeichen bei Zahlen (Tausender Punkt) habe ich bereits entfernt.
.
Das Anlegedatum ist laut Datenbank ein reines Datumsfeld ohne Uhrzeit.
Ohne die Typ Umwandlung vom "Anlegedatum" kommt bei meiner Zieldatenbank das Format yyyyMMdd HH:mm:ss an und der Import wird dann abgebrochen mit einer Fehlermeldung.
Die Typumwandlung bei der Uhrzeit habe ich entfernt, der Import funktioniert wie sie gesagt haben auch ohne diese Typumwandlung.
Da ohne Typumwandlung der Uhrzeit und ohne Angabe "DateTime" als Format beim Ausgabefeld nun der Import nicht mehr Funktioniert (Alle Uhrzeiten kleiner 10 Uhr werden ohne anführende Null versucht in die Zieldatenbank zu schreiben / Ist Ausgabe "H:mm:ss" Soll Ausgabe "HH:mm:ss").
Daher habe ich die Typangabe "DateTime" beim Ausgabefeld gelassen (jetzt wird automatisch eine "0" wieder vor Uhrzeiten kleiner 10Uhr angehangen).
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 7 Monate her #4312
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf DateTime aus Datum und Uhrzeit bilden - Beitrag(4312)
Hallo Herr Franke,
mit initialer Datentyp ist der FlowHeater Datentyp gemeint, den der FlowHeater nach dem Einlesen der Felder erkennt. Es sollte nur in Ausnahmefällen daran was geändert werden.
Ich habe mal zur Veranschaulichung ein kleines Beispiel mit einer Access Datenbank angehängt. Hier gibt es zwei Felder, eines für das Datum (=DATETIME) und eines für die Uhrzeit (=INTEGER).
Im Prinzip müssen Sie, um das Datumsfeld auf der WRITE Seite zu setzen im letzten String Append Heater (siehe Markierung) das Datum so formatieren wie es im WRITE Adapter unter Datum/Zeit Format angegeben wurde. So kann der FlowHeater das Datum der Zeichenkette automatisch an den jeweiligen Datentypen der Datenbank anpassen.
mit initialer Datentyp ist der FlowHeater Datentyp gemeint, den der FlowHeater nach dem Einlesen der Felder erkennt. Es sollte nur in Ausnahmefällen daran was geändert werden.
Ich habe mal zur Veranschaulichung ein kleines Beispiel mit einer Access Datenbank angehängt. Hier gibt es zwei Felder, eines für das Datum (=DATETIME) und eines für die Uhrzeit (=INTEGER).
Im Prinzip müssen Sie, um das Datumsfeld auf der WRITE Seite zu setzen im letzten String Append Heater (siehe Markierung) das Datum so formatieren wie es im WRITE Adapter unter Datum/Zeit Format angegeben wurde. So kann der FlowHeater das Datum der Zeichenkette automatisch an den jeweiligen Datentypen der Datenbank anpassen.
gruß
Robert Stark
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Marcus Franke
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 7
3 Jahre 7 Monate her #4314
von Marcus Franke
Marcus Franke antwortete auf DateTime aus Datum und Uhrzeit bilden - Beitrag(4314)
Danke für die Erklärung
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.310 Sekunden