Massendatenänderung
Hallo,
ich habe anstelle einem Datumsfeld ein Textfeld erzeugt.
Derweil habe ich bereits mehr als 80 Datensätze angelegt
Um mir jedoch das Alter an Hand vom Eingabefeld Geburtsdatum über ein Berungsfeld darstellen zu lassen, muss ich dies durch ein Datumsfeld ersetzten.
Leider, leider bekomme ich dies nicht gebacken.
Ich habe ein Textfeld, Geburtsdatum1 und ein Datumsfeld, Geburtsdatum.
Vielleicht hätte schon jemand so einen ähnlichen Fall.
9 Antworten
-
Sorry, Autokorrektur spackt.
-
Hallo Urban,
Du kannst die Datumsfelder über Massendatenänderungen füllen. Angenommen deine Texte sehen so aus : 01.03.2019, dann auf Zahnradsymbol ->Massendatenänderung->Geburtsdatum->berechneten Wert zuweisen klicken und die Formel
---
date(number(substr(Geburtsdatum1, 6, 4)), number(substr(Geburtsdatum1, 3, 2)), number(substr(Geburtsdatum1, 0, 2)))
---
Leo
-
Grandios!
Leo vielen Herzlichen Dank.
-
Hallo Leo, damit ich wieder etwas dazu lerne. Die Abfrage beginnt ja von ganz rechts also mit 2019 dann wird 03 abgefragt und dann die ersten beiden stellen. Demnach hätte ich ein Ergebnis 2019 03 01 erwartet, wieso wird das Datum dann richtig 01.03.2019 dargestellt.
Danke Wolfgang
-
Hallo Wolfgang,
wenn du ein Datum per skript erstellen möchtest, lautet der Befehl Datum:=date(YYYY,MM,DD)
Ninox wandelt dann diesen in eine Zahl als Millisekunden und leitet an Datumsfeld. Und das Datumfeld wandelt die Zahl in gewonnte 01.03.2019
Leo
-
Thanks
-
Hallo,
nur zur Ergänzung: Wenn das Datum nicht durchgängig im Format DD.MM.YYYY eingegeben ist (z.B. auch mal 3.6.2019), würde ich es so lösen:
let myDate := split(Geburtsdatum1,".");
date(item(myDate,2),item(myDate,1),item(myDate,0))
lg, Torsten
-
Hallo Torsten,
eine großartige Idee. Dabei muss man aber bedenken, dass split() einen Array mit Texten ausgibt und date() die Zahlen für die konvertierung braucht. Außerdem gibt es noch der Fall, wo man die Jahre zweistellig schreibt. Wenn wir davon ausgehen, dass bei zeistelligen (oder auch ein- und dreistelligen) Jahren immer 20XX gemeint ist, wäre die Formel:
---
let myDate := split(Geburtsdatum1, ".");
let myYear := if length(item(myDate, 2)) < 4 then
format(number(item(myDate, 2)), "2000")
else
item(myDate, 2)
end;
date(number(myYear), number(item(myDate, 1)), number(item(myDate, 0)))
---
Leo
-
Hallo Leo,
verdammt, und ich hab noch überlegt, ob ich's vorher testen soll, war mir aber zu sicher. ;-)
lg, Torsten
Content aside
- vor 5 JahrenZuletzt aktiv
- 9Antworten
- 1429Ansichten