Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Datum achterhalen sqlite database tabel CSV export

Pagina: 1
Acties:

  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
Ik hou al een tijdje mijn brandstof verbruik bij met de ANWB app auto. Op zich werkt deze prima, maar het is toch een vrij beperkte tool. Je zou veel meer uit de data kunnen halen.


Gelukkig kon je via app file transfer de database uit de app kopiëren! Goed gedaan van de anwb app developers. Tenminste een manier om toegang tot je data te krijgen.

viaDB Browser for SQLitee kon ik de tabellen bekijken.


En vervolgens exporteren als cvs om in excel te werken.


Alleen de datum is in een nogal vreemd formaat. Ik kan er niet echt een logica in terug vinden. Nu is mijn vraag, heeft iemand van jullie een idee hoe de datum is opgeslagen, en hoe ik zou kunnen terug rekenen naar een dd-mm-yyyy formaat?

MenN wijzigde deze reactie 28-11-2014 10:25 (5%)

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • albino71
  • Registratie: augustus 2006
  • Niet online
Lijkt op een unix timestamp, maar als ik ze omreken kom ik niet op een recente datum uit.
Misschien heeft de app er nog een rekenstap tussen zitten.

Je kunt hier checken of er iets van te maken is: http://www.epochconverter.com/

edit: Ziet er uit als een net gemiddeld verbruik!

albino71 wijzigde deze reactie 28-11-2014 10:35 (10%)

- VRAAG & AANBOD VAN MIJ -


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
Ik heb even zitten te spelen met de data op die website, maar nog altijd geen oplossing.

ik heb even de laatste 4 entries getest.

datum getankt --> datum in app --> terugrekening
  • 22 november 2014 --> 438346699 --> 22 november 1983 11:58:19
  • 18 november 2014 --> 437986086 --> 18 november 1983 07:48:06
  • 16 november 2014 --> 437840772769614 --> 16 november 1983 15:26:12 CET
  • 7 november 2014 --> 437068538 --> 7 november 1983 16:55:38 CET
Zo te zien klopt de datum wel, maar het jaar en de tijd zijn niet correct. :/

edit: Tis ook maar een klein boodschappen wagentje :P, en ik doe in Belgie tanken :*)

MenN wijzigde deze reactie 28-11-2014 10:48 (7%)

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • RobIII
  • Registratie: december 2001
  • Laatst online: 01:39

RobIII

DT Doktersteam / Moderator DevschuurŽ

^ Romeinse 3 ja!

quote:
MenN schreef op vrijdag 28 november 2014 @ 10:45:
Zo te zien klopt de datum wel, maar het jaar en de tijd zijn niet correct. :/
Is de "afwijking" bij elk van de records consistent (als in: overal X afwijking)? In dat geval tel je er die afwijking gewoon bij op en gebruiken ze waarschijnlijk een andere epoch dan de gangbare 1970-01-01 UTC.

[edit]
WTF?
Ik zie 437840772769614 (16 nov volgens jou) en 437986086 (18 nov)? Dat scheelt een factor 106 :X De eerste zou microseconden sinds "een" epoch zijn, de tweede seconden sinds "een" epoch (welke epoch laten we dan nog even in 't midden). Ik zou eerst eens even goed naar die DB kijken en de CSV openen in notepad o.i.d. voordat je Excel er met z'n gare 'interpretaties' overheen laat gaan. Kom eens met rauwe data i.p.v. interpretaties van CSV van Excel? Post eens een stukje (paar regels) van de CSV m.b.v. code tags?

RobIII wijzigde deze reactie 28-11-2014 10:57 (39%)

Mistakes happen. It's the mistakes inside a For Loop that are a real problem - Scott Hanselman.

Over mij


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
Wat problemen met de afwijking rekenen.
- de app laat alleen de datum zien van tanken, dus niet de tijd.
- De tijd dat ik de data entry maak, komt nooit overeen met tijdstip van tanken zelf. Soms voer ik van een hele maand bonnetjes in. Je kan dan alleen dag-maand-jaar invullen bij de entry.

Wellicht is het even afwachten wat volgend jaar gebeurt. als de afwijking gewoon 31 jaar blijft, dan tel ik die erbij op.

EDIT: ja die lange datums waren ook vreemd volgens mij. Maar die website die de getallen converteerd geeft mij die datums terug. Zelf heb ik geen reken werk verricht
code: data.csv
1
2
3
4
56,4,5,2500,84553,1,1,437068538,143.7
57,4,3,3664,85194,1,1,437840772.769614,143.7
58,4,3,2802,85667,1,1,437986086,141
59,4,3,2501,86133,1,1,438346699,140

MenN wijzigde deze reactie 28-11-2014 11:07 (37%)

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • RobIII
  • Registratie: december 2001
  • Laatst online: 01:39

RobIII

DT Doktersteam / Moderator DevschuurŽ

^ Romeinse 3 ja!

Zoals ik zei:
quote:
RobIII schreef op vrijdag 28 november 2014 @ 10:51:
Kom eens met rauwe data i.p.v. interpretaties van CSV van Excel? Post eens een stukje (paar regels) van de CSV m.b.v. code tags?
Ik durf er om te wedden dat Excel hier loopt te eikelen...

Mistakes happen. It's the mistakes inside a For Loop that are a real problem - Scott Hanselman.

Over mij


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
En dit zie ik in de rauwe sqlite database:

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • albino71
  • Registratie: augustus 2006
  • Niet online
Dat zou kunnen, maar de eerste screenshot van data lijkt toch wel erg op de XLS screenshot qua waardes.

@TS: Post ook eens de werkelijke datumtijd er bij....nu weten we niet wat we met wat moeten vergelijken...

Kun je niet de waardes selecteren uit je sql tool en deze in als code plakken hier?
code:
1
2
3
4
5
1234678
1234678
1234678
1234678
1234678

albino71 wijzigde deze reactie 28-11-2014 11:11 (26%)

- VRAAG & AANBOD VAN MIJ -


  • RobIII
  • Registratie: december 2001
  • Laatst online: 01:39

RobIII

DT Doktersteam / Moderator DevschuurŽ

^ Romeinse 3 ja!

quote:
MenN schreef op vrijdag 28 november 2014 @ 11:00:
EDIT: ja die lange datums waren ook vreemd volgens mij.
8)7 En die decimaalpunt is niet relevant volgens jou ofzo? :D
code:
1
2
437068538
437840772.769614

Is héél iets anders dan:
code:
1
2
437068538
437840772769614

@hieronder: nou laat je wéér die decimaalpunt achterwege...

Lang verhaal kort: maak er eerst een integer van (mik alles na de komma weg) of behandel alle datums 'tzelfde (als een, klaarblijkelijk, float die microseconden sinds een epoch representeert) en ga van daar uit verder.

RobIII wijzigde deze reactie 28-11-2014 11:14 (49%)

Mistakes happen. It's the mistakes inside a For Loop that are a real problem - Scott Hanselman.

Over mij


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
@ albino. Ik heb de werkelijke datum al erbij gezet.

datum dat IK getankt heb -->datum in database ---> datum van de epoch converter

22 november 2014 --> 438346699 --> 22 november 1983 11:58:19
18 november 2014 --> 437986086 --> 18 november 1983 07:48:06
16 november 2014 --> 437840772.769614 --> 16 november 1983 15:26:12 CET
7 november 2014 --> 437068538 --> 7 november 1983 16:55:38 CET

en screenshot hierboven komt rechtstreeks uit de database zelf.

EDIT: jup, sorry.

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • albino71
  • Registratie: augustus 2006
  • Niet online
Euhm, de werkelijke tijd heb je niet?

edit: screenshot kan ik niets mee, behalve overtikken.

Ik wil kopieren en plakken; minder kans op fouten!

Dus de te kopieren waardes hiertussen zetten...
code:
1
2
[code]
[/code]

albino71 wijzigde deze reactie 28-11-2014 11:16 (82%)

- VRAAG & AANBOD VAN MIJ -


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
Nee, want de tijd data kun je niet aflezen in de app.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
415821158.888924
416297762
416857274.460572
417378793.761626
417719750.957798
418205466
418903818
419339315
419751412
420140075
420553990
421046897
421305858
422169914
422218414.652214
422357357
422892781
423258047
423690111
424899808
424986164.134176
425317818.616754
425713140
426096621.152282
426527804.987582
427046961.6871
427489521
427816901
428335361
428681007
429121295.852909
429603698
430001585
430347231.511721
430850092.791817
431190348
431553420
432019919
432498729
432757984
433588657
433675120
433761562
434187613
434533266
434974169
436705818
437068538
437840772.769614
437986086
438346699

MenN wijzigde deze reactie 28-11-2014 11:21 (68%)

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • RobIII
  • Registratie: december 2001
  • Laatst online: 01:39

RobIII

DT Doktersteam / Moderator DevschuurŽ

^ Romeinse 3 ja!

De epoch is gewoon 1-1-2001 00:00:00. Tel daar 438346699 seconden bij op en dan kom je op 22-11-2014 10:58:19
C#:
1
2
3
4
5
6
7
8
9
10
11
12
var epoch = new DateTime(2001, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var dates = new[] {
    415821158.888924,416297762,416857274.460572,417378793.761626,417719750.957798,418205466,418903818,419339315,
    419751412,420140075,420553990,421046897,421305858,422169914,422218414.652214,422357357,422892781,423258047,
    423690111,424899808,424986164.134176,425317818.616754,425713140,426096621.152282,426527804.987582,427046961.6871,
    427489521,427816901,428335361,428681007,429121295.852909,429603698,430001585,430347231.511721,430850092.791817,
    431190348,431553420,432019919,432498729,432757984,433588657,433675120,433761562,434187613,434533266,434974169,
    436705818,437068538,437840772.769614,437986086,438346699
};

foreach (var d in dates)
    Console.WriteLine("{0:F4} -> {1,20}", d, epoch.AddSeconds(d));

415821158,8889 ->    6-3-2014 17:52:38
416297762,0000 ->   12-3-2014 06:16:02
416857274,4606 ->   18-3-2014 17:41:14
417378793,7616 ->   24-3-2014 18:33:13
417719750,9578 ->   28-3-2014 17:15:50
418205466,0000 ->    3-4-2014 08:11:06
418903818,0000 ->   11-4-2014 10:10:18
419339315,0000 ->   16-4-2014 11:08:35
419751412,0000 ->   21-4-2014 05:36:52
420140075,0000 ->   25-4-2014 17:34:35
420553990,0000 ->   30-4-2014 12:33:10
421046897,0000 ->    6-5-2014 05:28:17
421305858,0000 ->    9-5-2014 05:24:18
422169914,0000 ->   19-5-2014 05:25:14
422218414,6522 ->   19-5-2014 18:53:34
422357357,0000 ->   21-5-2014 09:29:17
422892781,0000 ->   27-5-2014 14:13:01
423258047,0000 ->   31-5-2014 19:40:47
423690111,0000 ->    5-6-2014 19:41:51
424899808,0000 ->   19-6-2014 19:43:28
424986164,1342 ->   20-6-2014 19:42:44
425317818,6168 ->   24-6-2014 15:50:18
425713140,0000 ->   29-6-2014 05:39:00
426096621,1523 ->    3-7-2014 16:10:21
426527804,9876 ->    8-7-2014 15:56:44
427046961,6871 ->   14-7-2014 16:09:21
427489521,0000 ->   19-7-2014 19:05:21
427816901,0000 ->   23-7-2014 14:01:41
428335361,0000 ->   29-7-2014 14:02:41
428681007,0000 ->    2-8-2014 14:03:27
429121295,8529 ->    7-8-2014 16:21:35
429603698,0000 ->   13-8-2014 06:21:38
430001585,0000 ->   17-8-2014 20:53:05
430347231,5117 ->   21-8-2014 20:53:51
430850092,7918 ->   27-8-2014 16:34:52
431190348,0000 ->   31-8-2014 15:05:48
431553420,0000 ->    4-9-2014 19:57:00
432019919,0000 ->   10-9-2014 05:31:59
432498729,0000 ->   15-9-2014 18:32:09
432757984,0000 ->   18-9-2014 18:33:04
433588657,0000 ->   28-9-2014 09:17:37
433675120,0000 ->   29-9-2014 09:18:40
433761562,0000 ->   30-9-2014 09:19:22
434187613,0000 ->   5-10-2014 07:40:13
434533266,0000 ->   9-10-2014 07:41:06
434974169,0000 ->  14-10-2014 10:09:29
436705818,0000 ->   3-11-2014 11:10:18
437068538,0000 ->   7-11-2014 15:55:38
437840772,7696 ->  16-11-2014 14:26:12
437986086,0000 ->  18-11-2014 06:48:06
438346699,0000 ->  22-11-2014 10:58:19

RobIII wijzigde deze reactie 28-11-2014 11:35 (163%)

Mistakes happen. It's the mistakes inside a For Loop that are a real problem - Scott Hanselman.

Over mij


  • Creepy
  • Registratie: juni 2001
  • Laatst online: 22:56

Creepy

Moderator DevschuurŽ

Tactical Espionage Splatterer

Het klinkt als een TDateTime type van Delphi: http://www.delphibasics.co.uk/RTL.asp?Name=TDateTime
quote:
It is stored as a Double variable, with the date as the integral part, and time as fractional part. The date is stored as the number of days since 30 Dec 1899. It really should be 31 Dec is.
maar dat lijkt me gezien de grote getallen toch geen optie.....

Creepy wijzigde deze reactie 28-11-2014 11:23 (9%)

There are only two hard things in computer science: Naming things and vertically centering things - @DavidKPiano
Wil je data goed inzichtelijk maken? Graven in data, ontwikkelen, helpen (klant) processen te verbeteren en opzoek naar een baan? DM me.


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
Ok, heel erg bedankt! Dat ziet er uit als de juiste data.
Kan ik weer aan de slag. :)

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • albino71
  • Registratie: augustus 2006
  • Niet online
Volgens mij heeft RobIII 'm getackeld.

Misschien kun je ter controle de tijden nog via je tankpas achterhalen o.i.d.?

Succes!

albino71 wijzigde deze reactie 28-11-2014 11:31 (5%)

- VRAAG & AANBOD VAN MIJ -


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
Nee, helaas gaat dat niet lukken. De tijd van het tanken komt namelijk bijna nooit overeen met de tijd dat ik de waarde invoer in de app.

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark


  • albino71
  • Registratie: augustus 2006
  • Niet online
Ah, ok, dat doe je niet direct na het tanken...

Nou ja, de datum is belangrijker....

- VRAAG & AANBOD VAN MIJ -


  • MenN
  • Registratie: oktober 2006
  • Laatst online: 20:51
Klopt het gaat me gewoon om de datum.

Dan nog voor de volledigheid:

Met een simpele formule staat het nu ook mooi in Excel. Cel opmaken als datum, en de getallen worden omgezet in leesbare tekst.
code:
1
=cellMetDeData/(60*60*24)+"1/1/2001"

de epoch van 2001 wordt gebruikt in Apple's Cocoa framework
quote:
2001 is the year of the release of Mac OS X 10.0 (but the developer of NSDate for Apple's EOF 1.0 couldn't have known that in 1994).
(wikipedia)

MenN wijzigde deze reactie 28-11-2014 11:57 (8%)

"Any sufficiently advanced technology is indistinguishable from magic" - Arthur C. Clark

Pagina: 1


Nintendo Switch Samsung Galaxy S8+ LG W7 Samsung Galaxy S8 Google Pixel 2 Sony Bravia A1 OLED Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True

*