Problem mit .db-Datei und Datumsformat/-berechnung

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Problem mit .db-Datei und Datumsformat/-berechnung

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

von marcel_at_work » Di, 29.10.2013 22:08

Hey Karolus,

"mal wieder" danke, du bist ein Schatz! :)



Einen wundervollen Abend noch,


Marcel

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

von Karolus » Mo, 28.10.2013 08:09

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

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

von marcel_at_work » So, 27.10.2013 20:15

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

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

von marcel_at_work » Fr, 13.09.2013 15:24

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

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

von Karolus » Fr, 13.09.2013 14:43

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

Problem mit .db-Datei und Datumsformat/-berechnung

von marcel_at_work » Fr, 13.09.2013 14:09

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

Nach oben