[Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 11:54

Hallo

Ich möchte den CURRENTDATETIME wert in einen Integer Wert abfüllen jedoch nur die Zahlen

Code:
Rec."Range Versand ID Nr"  := DATE2DMY(TODAY, 3) + DATE2DMY(TODAY, 2) + DATE2DMY(TODAY, 1) +  ????;


Das Datum sollte glaub so funktionieren aber wie ist es mit der Zeit ?
Integer Variable := time (12:00:00) wie bringen ich die Doppelpunkte raus

Danke für Eure Hilfe
Dany
Zuletzt geändert von riffaquarium am 30. Juli 2019 13:43, insgesamt 1-mal geändert.

Re: CURRENTDATETIME in ein Integer Wert

30. Juli 2019 12:24

Hallo,

dat wird so nicht funktionieren.
Ich denke mal, du möchtest mit deiner Nr. nicht die Quersumme der Datums-/Zeitfelder bilden!?

denn
Code:
  DATE2DMY(TODAY, 3) + DATE2DMY(TODAY, 2) + DATE2DMY(TODAY, 1)
                2019                  +           7                    +      30 = 2056
                2019                  +           8                    +      29 = 2056


einfacher wäre hier wahrscheinlich

Code:
EVALUATE(Rec."Range Versand ID Nr",FORMAT(CurrentDateTime,0,'<Year4><Month,2><Day,2><Hours24,2><Minutes,2><Seconds,2><Thousands,3>'))


Das ganze hat nur einen Haken. Selbst wenn du die "Thousands" weg lässt, wird der Wert zu groß für einen Integer. Machst du ihn kleiner, indem du Sekunden oder auch Minuten weg lässt, wird der Wert nicht eindeutig, d.h. du hast doppelte Nummern, was du sicher auch nicht willst.

Gruß Fiddi

Re: CURRENTDATETIME in ein Integer Wert

30. Juli 2019 13:01

Falls es nur um eine eindeutige ID geht, kann man es mit Kalenderwoche statt MMTT noch in einen Integer reinbekommen.
EVALUATE(MyInt,FORMAT(TODAY,0,'<Year,2><Week,2>'+FORMAT(CURRENTDATETIME,0,'<Hours24><Minutes,2><Seconds,2>')));
Korrektur (<Hours24> durch <Hours24,2>< ersetzt, Grund s.u.)
Code:
EVALUATE(MyInt,FORMAT(TODAY,0,'<Year,2><Week,2>'+FORMAT(CURRENTDATETIME,0,'<Hours24,2><Minutes,2><Seconds,2>')));

Re: CURRENTDATETIME in ein Integer Wert

30. Juli 2019 13:43

Hallo Zusammen

Danke Euch für die Ausführungen, Ich nehme Kowa's Lösung somit funktioniert das !

Danke Euch
Liebe Grüsse
Dany

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 13:57

Hallo,

in Kowa's Lösung ist ein kleiner Bug. Da fehlt hinter Hours24 das ",2".

Gruß Fiddi

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 14:03

Da kommt aber das gleiche heraus !

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 14:06

Nicht wenn die Uhrzeit vor 12Uhr ist.

Gruß Fiddi

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 14:37

fiddi hat geschrieben:Nicht wenn die Uhrzeit vor 12Uhr ist.

Laut Doku sollte Hours24 vor 12 Uhr bei DATETIME automatisch eine führende Null ergänzen. Bei TIME ist das dagegen anders.
https://docs.microsoft.com/en-us/dynami ... t-property

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 15:07

Hallo Kowa,

leider hat NAV2018 sein Handbuch nicht gelesen :wink: .
Code:
MESSAGE(FORMAT(CREATEDATETIME(TODAY,9.00T),0,'<Hours24>'));


Hours.png


Gruß Fiddi
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 15:46

fiddi hat geschrieben:Hallo Kowa,
leider hat NAV2018 sein Handbuch nicht gelesen :wink: .

Komisch, dass das noch keiner bemerkt hat :roll: .
Gleich den Schaden im Bild festhalten :wink: : https://github.com/MicrosoftDocs/dynami ... issues/669

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

30. Juli 2019 15:59

Hallo,

aber das Verhalten ist logisch. Alle Format Anweisungen sind immer ohne führende Nullen.

Gruß Fiddi

Re: [Erledigt] CURRENTDATETIME in ein Integer Wert

31. Juli 2019 08:54

fiddi hat geschrieben: Alle Format Anweisungen sind immer ohne führende Nullen.

Nicht alle, <Year> erzeugt eine führende Null.