Office: (Office 2016) Uhzreit in Zahl umwandeln

Helfe beim Thema Uhzreit in Zahl umwandeln in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Wenn man schon rechnet statt unmittelbar verwendet (Indexnutzung für Abfragen), wäre die Verwendung eines UNIX-Timestamps eine Alternative. Dort wird... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von firela112, 24. August 2018.

  1. Uhzreit in Zahl umwandeln


    Wenn man schon rechnet statt unmittelbar verwendet (Indexnutzung für Abfragen), wäre die Verwendung eines UNIX-Timestamps eine Alternative. Dort wird der DateTime-Wert in Sekunden seit dem 01.01.1970 ausgedrückt, ist also eine Ganzzahl (Long) und damit frei von Rundungsdifferenzen.
    Die Hin- und Herrechnung UNIX-Timestamp - DateTime per DateAdd / DateDiff ist auch überschaubar.
     
  2. Vielen Dank für das Beispiel! Das grundsätzliche Problem der Fließkommatypen war mir bewusst, aber dass es bei einer Berechnung, explizit unter Verwendung der dafür vorgesehenen Datumsfunktionen, auch zu diesen Problemen kommt, hat mich doch etwas überrascht. - Bei genauerer Betrachtung ist natürlich klar, dass eine Minute auch von DateAdd nur mit potenziellen Rundungsungenauigkeiten dargestellt werden kann. Erschreckend allerdings, dass diese noch nicht mal in der Double-Repräsentation der Datumswerte sichtbar werden.

    @Nouba und @ebs17: Ihr habt natürlich beide recht. Dennoch muss ich hier Marsu65 und auch markusxy zustimmen, dass es nicht intuitiv ist, wenn zwei definierte Datumswerte nicht direkt verglichen werden können. - Dass einer der beiden Werte über mehrere Rechenschritte errechnet wurde, sollte dabei keinen Unterschied machen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  3. Ich hatte immer das Problem, dass wenn ich berechnete Werte über SQL Filter anzeigen wollte aufgrund der minimalen Unterschiede öfter mal nichts gefunden wurde.

    So kann man entweder jeden berechneten Wert runden oder man überführt für die Berechnung in Ganzzahlen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 27. August 2018
    #18
  4. Uhzreit in Zahl umwandeln

    Ich habs bis jetzt etwas komplizierter gemacht.
    Das werde ich künftig verwenden.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 27. August 2018
    #19
  5. Hallo!

    In VBA könnte man für den Vergleich auch DateDiff verwenden, wenn "auf Sekunde genau" ausreicht.

    mfg
    Josef
     
    Josef P., 28. August 2018
    #20
  6. Hallo zusammen!
    Hat imho weniger mit Normalisierung von Gleitkommazahlen, sondern mehr mit
    dem Problem periodischer Binärzahlen zu tun.

    Eine Zeitangabe erst in einen String und zurück in ein Date zu konvertieren
    (Date-/TimeValue) ist zwar programmatisch eine Lösung, sollte dann aber imho
    direkt in der DateAdd-Funktion integriert sein. Jedenfalls sollte bei der Beschreibung
    der Funktion ein entsprechender Hinweis auf deren Ungenauigkeiten zu finden sein.

    @markus
    selbes Prinzip, etwas kürzer als der Vorschlag von Nouba
    Code:
    was schneller ist, habe ich nicht getestet.
    Ich selbst bilde Kalenderdaten mit Uhrzeit nur noch über die Date-/Timeserial-Funktionen.
    Dabei sind mir bis jetzt keine Ungereimtheiten aufgefallen.

    @sonic
    Die Differenzen treten erst so ab der 11. Nachkommastelle auf.
    Bei Sekundenintervallen teilweise sogar erst ab der 20.!
     
    Marsu65, 29. August 2018
    #21
  7. \@Marsu65
    CDate ist grundsätzlich extrem langsam.

    Ich habs immer so gemacht:

    Datumsvariable = FormatDateTime(daDatum, vbGeneralDate)

    Ich gehe mal davon aus, dass jede Umwandlung in Text verhältnismäßig langsam ist.

    Manchmal reicht es nur eine Sekunde abzuziehen und schon passt es nicht. Es geht da immer nur um den Ausgangswert.Wenn man nach der Berechnung rundet passt alles.
     
    markusxy, 29. August 2018
    #22
  8. Uhzreit in Zahl umwandeln

    Hallo zusammen,

    da es mich interessiert hat, ein einfacher Speed-Test:
    Code:
    Date-/TimeSerial ist trotz der Zerlegung mehr als doppelt so schnell wie alle anderen.
    Nicht, dass es bei den Werten in einer Anwendung eine Rolle spielen dürfte ... *wink.gif*

    Woher hast du diese Erkenntnis?
     
    Marsu65, 30. August 2018
    #23
  9. \@Marsu65, danke für den Vergleich.
    Bei mir habe ich nur den Vergleich des Convertierens von String zu Datum gemacht. Serial Funktion vs. CDate und das ohne den Wert bei jedem Durchlauf zu ändern.
     
    markusxy, 31. August 2018
    #24
  10. CDate macht mit einem Datumswert gar nichts, weil es nichts zu wandeln gibt.

    Hier mal mein Benchmarking: Code:
    Mit diesen Resultaten auf meinem angestaubten Notebook. Code:
    Wie man schön sieht, verbrät DateASdd ca. 1/3 der Zeit, vermutlich deswegen, weil beim Wechsel in die Vorzeit der Epoche Besonderheiten zu beachten sind. Denn eine Sekunde nach 0 (30.12.1899 00:00:00) entspricht einem Wert von -1,99998842592593!
     
  11. \@Nouba
    na gut, akzeptiert. *winner
     
    markusxy, 31. August 2018
    #26
  12. \@Nouba,
    ich versuche grade einen String von einem Datum per API. -> https://docs.microsoft.com/de-de/pre...arbstrfromdate
    Was mache ich falsch?

    Code:
    Edit: Wie ich jetzt bemerkt habe erhalte ich einen Pointer zu einem BSTR als Rückgabewert.
    Muss ich den BSTR dann auch irgendwie freigeben, oder passiert das automatisch?

    Edit: Wenn ich den Befehl mehrfach aufrufe, wird die Adresse sofort wieder verwendet wenn ich per SysFreeString freigebe. Also werde ich es mit der Freigabe verwenden.
     
    markusxy, 31. August 2018
    #27
  13. Uhzreit in Zahl umwandeln

    Du erhältst als Resultat einen Pointer auf einen BStr, den Du dann in den Puffer kopieren kannst. Code:
    PS: da wird die API selbst einen Puffer bereitstellen.
     
  14. \@Nouba,
    danke, zwischenzeitlich hatte ich es schon geschafft.

    Was mir nie klar ist.
    Wie komme ich zu den Konstanten?
    Manchmal sind sie Online zu finden, oder sie sind im win32api.txt File enthalten.

    Gibt es da noch eine andere Quelle?
    LG M
     
    markusxy, 31. August 2018
    #29
  15. Win-API vs. VBA-Methode, das ist unfair. *rolleyes.gif*
    Trotzdem *10points
     
    Marsu65, 31. August 2018
    #30
Thema:

Uhzreit in Zahl umwandeln

Die Seite wird geladen...
  1. Uhzreit in Zahl umwandeln - Similar Threads - Uhzreit Zahl umwandeln

  2. Exel Farbige Zahlen addieren

    in Microsoft Excel Hilfe
    Exel Farbige Zahlen addieren: Hallo an alle, folgendes Problem...ich möchte rote und blaue Zahlen zusammen zählen. Das Problem ist, dass ich eine Summenspalte für vormittags und nachmittags habe. In der Tabelle befinden sich...
  3. Sonnabende zählen

    in Microsoft Excel Hilfe
    Sonnabende zählen: Hallo, es geht um Office 2024. ich möchte von einem Startdatum in der Vergangenheit bis Heute() die Sonnabende zählen. Formeln sind nich mein Speziakgebiet. <img...
  4. X in die Zahl 1 Umwandeln

    in Microsoft Excel Hilfe
    X in die Zahl 1 Umwandeln: Moin, Ich möchte, wenn in einer Zelle ein X drin steht, das es in die Zahl 1 Umgewandelt wird. Meine Formel sieht so aus: =WENNFEHLER(SVERWEIS(AC76;'[20250310_Feiertagsplanung_1tes...
  5. In einer Zelle Zahlen erkennen und trennen

    in Microsoft Excel Hilfe
    In einer Zelle Zahlen erkennen und trennen: Guten Tag zusammen Ich habe folgende Daten in einer Zelle und muss diese in mehrere Spalten aufteilen, insbesondere benötige ich die Zahl, die hinter dem X steht PKP210SX90AOS08...
  6. Während der Eingabe überprüfen ob Zahl oder Text

    in Microsoft Access Hilfe
    Während der Eingabe überprüfen ob Zahl oder Text: Hallo, wenn ich in einem Zahlenfeld einen Text eingebe erfolgt folgende Meldung [ATTACH] Wie kann ich die Meldung abfangen um eine eigene Meldung auszugeben? Das Zahlenfeld ist mit 0 vor belegt...
  7. Spalten Sortieren nach Zahlen mit Buchstaben (1a,1b usw)

    in Microsoft Excel Hilfe
    Spalten Sortieren nach Zahlen mit Buchstaben (1a,1b usw): Hallo, ich habe hier eine Bauteileliste erstellt um diese leichter wiederzufinden. Das Problem ist, dass die Baugruppen unterteilt sind (ist ein Kartonbaubogen mit mehreren Hundert Teilen,...
  8. Inhaltsverzeichnis mit römischen Zahlen und der Rest in arabischen Zahlen

    in Microsoft Word Hilfe
    Inhaltsverzeichnis mit römischen Zahlen und der Rest in arabischen Zahlen: Hallo Zusammen, ich muss für meine Doktorarbeit ein Dokument erstellen, dass folgende Vorgaben hat: - Titelblatt - Inhaltsverzeichnis (mit römischen Zahlen) - Einleitung (Beginn mit Seite 1)...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden