Hallöchen allerseits,
Ich habe eine App namens "timetracker" auf dem Handy, deren Datenbank als .db-Datei vorliegt und die sich auch mittels "SQLite Manager" für Firefox anschauen/bearbeiten lässt.
Ich schreibe nun seit ein paar Tagen an einer Synchronisierungsfunktion für den PC und komme mit sämtlichen Daten in der DB klar, aber die gespeicherten DateTime-Werte zweier Spalten kann ich einfach nicht zuordnen bzw. umrechnen.
Zum Beispiel steht in Spalte "startTime" der DateTime-Wert "1.377.986.400.000" und soll den "01.09.13 00:00" darstellen. Der nächste Tag beträgt dann genau "86.400.000" mehr, was auch der genaue Wert für ms/d ist (24 h * 60 min * 60 s * 1.000 ms = 86.400.000 ms). Soweit könnte man damit rechnen, aber wenn ich nun mit Division in die Vergangenheit herunterbreche, bleibt nach 15948 Tagen ein kleiner Rest übrig. Wie kann denn so etwas sein? Und wenn man die 15948 in eine Calc-Spalte mit Datumsformatierung einfügt, wird "01.09.43" angezeigt.
Habe ich einen Denkfehler und macht das einfach keinen Sinn?
Hat von euch vl. jemand Erfahrung damit?
Liebe Grüße,
Marcel
Problem mit .db-Datei und Datumsformat/-berechnung
Moderator: Moderatoren
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Problem mit .db-Datei und Datumsformat/-berechnung
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Re: Problem mit .db-Datei und Datumsformat/-berechnung
Hallo
Der Wert ist anscheinend die Differenz in Millisekunden zum 13. Januar 1970 2:00 Uhr
Unter Berücksichtigung der Schaltjahre und Mitteleuropäischer Sommerzeit liegt der 1.1.1970 ziemlich nah.
Mit anderen Worten:
dividiere durch (24*60*60*1000) und addiere dann den 13.Jan.1970 2:00
Karolus
Der Wert ist anscheinend die Differenz in Millisekunden zum 13. Januar 1970 2:00 Uhr
Unter Berücksichtigung der Schaltjahre und Mitteleuropäischer Sommerzeit liegt der 1.1.1970 ziemlich nah.
Mit anderen Worten:
dividiere durch (24*60*60*1000) und addiere dann den 13.Jan.1970 2:00
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: Problem mit .db-Datei und Datumsformat/-berechnung
Hey Karolus,
wow, genial.
Für den 01.09.13 müsste ich dann aber mit dem 01.01.70 rechnen. Aber es klappt.
)
Einen wundervollen Nachmittag noch,
Marcel
wow, genial.

Für den 01.09.13 müsste ich dann aber mit dem 01.01.70 rechnen. Aber es klappt.

Einen wundervollen Nachmittag noch,
Marcel
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: Problem mit .db-Datei und Datumsformat/-berechnung
Hallo allerseits,
wie würde denn die Formatierung in entgegengesetzte Richtung funktionieren?
Mit...
... komm ich knapp 70 Jahre am erhofften Ergebnis vorbei.
Und wie müßten die Variablen deklariert werden?
Viele Grüße,
Marcel
wie würde denn die Formatierung in entgegengesetzte Richtung funktionieren?
Mit...
Code: Alles auswählen
Dim nMillisecondsPerDay As Double
Dim dUnixDate, dDate As Date
dUnixDate = "01.01.1970 02:00:00"
nMillisecondsPerDay = 86400000
dDate = "14.08.2013 07:30:00"
msgbox (dDate - dUnixdate) * nMillisecondsPerDay

Und wie müßten die Variablen deklariert werden?
Viele Grüße,
Marcel
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Re: Problem mit .db-Datei und Datumsformat/-berechnung
Hallo
Du hast dUnixDate nicht als Date deklariert.
nb: nMillisecondsPerDay ist eine ganze Zahl (long) und kein Dezimalwert (double)
Wenn möglich nimm für literale Datumsstrings immer Isoformat JJJJ-MM-TT evtl. in Verbindung mit der Funktion cDateFromIso(..)
Karolus
Du hast dUnixDate nicht als Date deklariert.
Code: Alles auswählen
Dim nMillisecondsPerDay As long
Dim dUnixDate as Date, dDate As Date
dUnixDate = "1970-01-01 2:00" 'cdatefromiso("1970-01-01") +1/12'
nMillisecondsPerDay = 86400000
dDate = "2013-09-01"
msgbox dDate
msgbox dUnixDate
msgbox ((dDate - dUnixdate) * nMillisecondsPerDay)
Wenn möglich nimm für literale Datumsstrings immer Isoformat JJJJ-MM-TT evtl. in Verbindung mit der Funktion cDateFromIso(..)
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: Problem mit .db-Datei und Datumsformat/-berechnung
Hey Karolus,
"mal wieder" danke, du bist ein Schatz!
Einen wundervollen Abend noch,
Marcel
"mal wieder" danke, du bist ein Schatz!

Einen wundervollen Abend noch,
Marcel
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]