Problem mit .db-Datei und Datumsformat/-berechnung

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Problem mit .db-Datei und Datumsformat/-berechnung

Beitrag von marcel_at_work »

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
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Problem mit .db-Datei und Datumsformat/-berechnung

Beitrag von Karolus »

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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Problem mit .db-Datei und Datumsformat/-berechnung

Beitrag von marcel_at_work »

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
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Problem mit .db-Datei und Datumsformat/-berechnung

Beitrag von marcel_at_work »

Hallo allerseits,

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
... komm ich knapp 70 Jahre am erhofften Ergebnis vorbei. :(

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]
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Problem mit .db-Datei und Datumsformat/-berechnung

Beitrag von Karolus »

Hallo
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)
 
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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Problem mit .db-Datei und Datumsformat/-berechnung

Beitrag von marcel_at_work »

Hey Karolus,

"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]
Antworten